`

solr使用 备忘录 草稿

 
阅读更多

一、基础配置

官网下载: http://lucene.apache.org/solr/

我下载下载版本是apache-solr-3.6.2

 

第一步:复制apache-solr-3.6.2\example\solr 文件夹到Tomcat7的根目录

第二步:复制apache-solr-3.6.2\example\webapps\solr.war Tomcat7webapps目录下

第三步:在apache-tomcat-7.0.39\conf\Catalina\localhost目录下新建solr.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>  

<Context docBase="D:/install/sorl20120423/apache-tomcat-7.0.39/webapps/solr" debug="0" crossContext="true" >  

<Environment name="solr/home" type="java.lang.String" value="D:/install/sorl20120423/apache-tomcat-7.0.39/solr" override="true" />  

<!--<Environment name="solr/home" type="java.lang.String" value="D:/tmp/lringsolr" override="true" />  -->

</Context>  

 

第四步:启动tomcat 访问:http://localhost:6666/solr/  访问到就安装成功了,6666是我tomcat的端口。

 

二、多核配置

 

多核就是多个服务 ,比如搜各个分类每个分类一个索引

1、进入apache-solr-3.6.2\example\multicore目录拷贝core0core1(名称可改任意多个不限)apache-tomcat-7.0.39\solr\目录下

2、配置apache-tomcat-7.0.39\solr\solr.xml 新增如下代码 

<core name="core0" instanceDir="core0" />

<core name="core1" instanceDir="core1" />

 

配置完成访问多核只需在原有访问路径基础上加core名称即可。

 

三、外面mysql数据导入到索引

1、在apache-tomcat-7.0.39\solr\conf 目录新建db-data-config.xml 内容如下

 

<dataConfig>  

      <dataSource type="JdbcDataSource"  

                  driver="com.mysql.jdbc.Driver"  

                  url="jdbc:mysql://地址:3306/库名"  

                  user="用户名"  

                  password="密码"/>  

      <document>  

        <entity name="id"  

                query="select id,description from d_city">  

        </entity>  

         <field column="id" name="solr_id"/>  

       <field column="description" name="solr_description"/>  

      </document>  

</dataConfig>  

2、配置apache-tomcat-7.0.39\solr\conf目录下的solrconfig.xml加入如下内容:

 

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

    <str name="config">db-data-config.xml</str>

    </lst>

  </requestHandler>

 

3、apache-solr-3.6.2\example\libjar包导入apache-tomcat-7.0.39\webapps\solr\WEB-INF\lib下 。

访问:http://localhost:6666/solr/dataimport?command=full-import 即可建立索引

 

 

 

四、索引访问代码:建立索引

import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.common.SolrInputDocument;

public class InitDocumnet {
	
	static {
		  long begin=System.currentTimeMillis() ;
		  String url = "http://localhost:6666/solr/" ;

		  try{
			  HttpSolrServer server = new HttpSolrServer( url );
			  server.setMaxRetries(1); // defaults to 0.  > 1 not recommended.
			  server.setConnectionTimeout(5000); // 5 seconds to establish TCP
			  server.setParser(new XMLResponseParser()); // binary parser is used by default
			  server.setSoTimeout(1000);  // socket read timeout
			  server.setDefaultMaxConnectionsPerHost(100);
			  server.setMaxTotalConnections(100);
			  server.setFollowRedirects(false);  // defaults to false
			  server.setAllowCompression(true);
			  for(int i=1;i<10;i++){
				  SolrInputDocument doc1 = new SolrInputDocument();
				
			       doc1.addField( "id",i+"1");
			       doc1.addField( "name", "00网传一份北京大学权威认定的中国最顶级中学名录,在网上被热炒,不少网友表示自己的母校位列其中。在这份名录中,上海上榜4所学校,分别为上海中学,华师大二附中,复旦附中,七宝中学。你的母校上榜了吗?图via清华南都"+i);
			       server.add(doc1) ;
			  }
		       server.commit() ;
		       System.out.println(System.currentTimeMillis()-begin) ;
		  }catch(Exception ex){
			  ex.printStackTrace() ;
		  }
	}
	
	static public void main(String[] args){
	   long begin=System.currentTimeMillis() ;
	   
		new InitDocumnet() ;
		System.out.println(System.currentTimeMillis()-begin) ;
	}

 

 删除索引:

import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.common.SolrInputDocument;

public class DelDocumnet {
	static {
		  long begin=System.currentTimeMillis() ;
		  String url = "http://localhost:6666/solr/" ;

		  try{
			  HttpSolrServer server = new HttpSolrServer( url );
			  
			  server.setMaxRetries(1); // defaults to 0.  > 1 not recommended.
			  server.setConnectionTimeout(5000); // 5 seconds to establish TCP
			  server.setParser(new XMLResponseParser()); // binary parser is used by default
			  server.setSoTimeout(1000);  // socket read timeout
			  server.setDefaultMaxConnectionsPerHost(100);
			  server.setMaxTotalConnections(100);
			  server.setFollowRedirects(false);  // defaults to false
			  server.setAllowCompression(true);
			  server.deleteByQuery("*:*");

              
		       server.commit() ;
		       System.out.println(System.currentTimeMillis()-begin) ;
		  }catch(Exception ex){
			  ex.printStackTrace() ;
		  }
	}
	
	static public void main(String[] args){
	   long begin=System.currentTimeMillis() ;
	   
	
		System.out.println(System.currentTimeMillis()-begin) ;
	}
}

 查询索引:

import java.util.Iterator;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;

public class SearchTest {

	public static void main(String[] args) {
		// 实例化SolrServer,以获取与solrServer的通信
		String url = "http://localhost:6666/solr/" ;
		SolrServer server = new HttpSolrServer(url);

		// 创建查询参数以及设定的查询参数
		SolrQuery query = new SolrQuery();
	query.setQuery("*:*");   
		query.setRows(2000); 
//		query.addHighlightField("webTitle");// 高亮字段
//		query.addHighlightField("webContent");// 高亮字段
//		query.setFacet(true)  
//        .setFacetMinCount(12)  
//        .setFacetLimit(5);//段  
    //    query.setQuery("e");   
//      query.setQuery("id:长江2");   
 //    query.setQuery("1");   
		// 查询并获取相应的结果!
		QueryResponse response = null;
		try {
			response = server.query(query);
			  SolrDocumentList docs = response.getResults();
			  //Get the results    
		
	      //      Iterator<SolrDocument> itDocs = response.getResults().iterator();   
			    Iterator<SolrDocument> itDocs = docs.iterator();
	            if (response.getResults().getNumFound() > 10) {   
	                System.out.println("显示前10项相关结果");   
	            }   
	            if (!itDocs.hasNext()) {   
	                //如果没有任何返回结果   
	                System.out.println("no any result! ");   
	            }   
	            while (itDocs.hasNext()) {   
	                SolrDocument resultDoc = itDocs.next();   
	                   
	                String content = (String) resultDoc.getFieldValue("description");   
	                String id = (String) resultDoc.getFieldValue("id");    
	  
	                System.out.println("Content: " + content + "  Id: " + id);   
	            }   
	            System.out.println("文档个数:"+ docs.getNumFound());
	            System.out.println("查询时间:" + response.getQTime());
		} catch (SolrServerException e) {
			System.err.println(e.getMessage());
			e.printStackTrace();
		} catch (Exception e) {
			System.err.println(e.getMessage());
			e.printStackTrace();
		} finally {

		}

	}
}

 

分享到:
评论

相关推荐

    Solr(Cloudera)使用手册

    3. **加载中文分词jar包**:将中文分词器的jar包添加到Solr的lib目录下,以供Solr使用。 #### 六、监控Solr 监控Solr集群的状态对于及时发现和解决问题至关重要。 - **使用Cloudera Manager**:Cloudera Manager...

    solr 安装和使用

    ### Solr 安装与使用详解 #### 一、Solr简介 Solr 是一个高性能、采用Java开发的全文搜索引擎。它可以轻松地被集成到基于Web的应用程序中,为用户提供强大的搜索功能。Solr 支持多种数据源,并且能够进行高度定制...

    solr使用和原理

    solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署

    solr的安装使用步骤

    ### Solr的安装使用步骤详解 #### Solr概述与特性 **Solr** 是 Apache 下的一个顶级开源项目,它基于 **Lucene** 进行构建,提供了强大的全文搜索能力。相较于 Lucene,Solr 提供了更为丰富的查询语言支持,并且...

    easynet.solr开发与使用

    《easynet.solr开发与使用》 在现代信息技术领域,搜索引擎已经成为不可或缺的一部分,而Apache Solr作为一款强大的开源搜索引擎,被广泛应用于各种数据检索场景。为了方便开发者更高效地集成和操作Solr,Easynet...

    solr使用指南1

    Solr 使用指南 Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的 Java 来实现。服务器通信使用标准的 HTTP 和 XML,因此如果使用 Solr,了解 Java 技术会有用却不是必须的要求。Solr 的核心技术是使用...

    solr 的使用及安装

    本文将深入讲解 Solr 的使用及安装过程。 一、Solr 简介 Solr 基于 Lucene 库,提供了一个高度可配置和可扩展的平台,用于处理和索引大量数据,支持多种数据源,如文件、数据库等。其主要特性包括: 1. **全文搜索...

    solr6.5使用的IK分词

    "solr6.5使用的IK分词"就是一个针对Solr 6.5版本的中文分词解决方案。 **IK分词器** IK分词器(Intelligent Chinese Analyzer)是由Lucene社区开发的一款高性能的中文分词工具,适用于Java环境。它的主要目标是为...

    Solr 使用文档 pdf版

    ### Solr 3.* 使用手册知识点总结 #### 一、Solr简介与核心概念 - **Solr**:Apache Solr 是一个高性能、基于 Lucene 的全功能搜索引擎平台。它支持分布式搜索,并提供了丰富的功能集来满足企业级搜索需求。 - **...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    要使用solr-dataimport-scheduler.jar,首先需要将该jar包部署到Solr服务器的lib目录下,这样Solr启动时会自动加载这个组件。然后,在Solr的配置文件(如solrconfig.xml)中,你需要定义一个DIH的配置,包括数据源...

    solr的安装与使用

    Solr安装与使用 Solr是一款功能强大的搜索引擎,能够帮助我们快速搭建企业搜索平台。在本文中,我们将详细介绍Solr的安装和使用过程。 一、安装Solr 首先,我们需要下载Solr的安装包。这里我们使用的是Solr 1.3...

    solr5.5.4部署及使用

    在本文档中,我们将详细介绍如何部署和使用 Solr 5.5.4 版本,包括两种常见的部署方式:Jetty 和 Tomcat,并涉及到中文分词器IKAnalyzer的集成以及对Word文档的支持。 首先,我们需要准备合适的环境,这里要求的是...

    solr在java中使用总结

    ### Solr在Java中的使用总结 #### 一、Solr简介 Solr是一个高性能的全文搜索引擎,基于Apache Lucene开发,使用Java 5编写。它不仅继承了Lucene的强大功能,还提供了更丰富的查询语言以及更好的性能优化。Solr具备...

    solr(solr-9.0.0.tgz)

    4. **docs** 文件夹:包含了Solr的用户文档,可以帮助开发者和管理员了解Solr的使用方法和API。 5. **example** 文件夹:提供了一个简单的Solr实例,包括了如何设置和运行的基本示例,对于初学者来说非常有用。 6....

    Solr入门使用详解.zip

    通过阅读“Solr使用详解.pdf”,你可以深入了解Solr的使用方法,掌握从安装配置到实际操作的全过程,从而更好地利用Solr解决实际的搜索和分析问题。同时,solrJ和IK分词器的使用将进一步提升你在Java环境中操作Solr...

    solr中文解析器以及使用文档

    总的来说,"solr中文解析器以及使用文档"这个主题涵盖了如何在Solr中配置和使用IK Analyzer进行中文文本处理,以及如何优化其性能以适应各种实际应用。通过深入学习这些内容,可以有效地提升Solr在中文环境下的搜索...

    使用docker 部署solr

    centos7 环境 安装docker 并在docker 中部署solr 并使用

    最新版linux solr-8.8.2.tgz

    为了方便使用 Solr 的命令行工具,可以将 Solr 的 bin 目录添加到系统的 PATH 环境变量中。例如,在 `.bashrc` 或 `.bash_profile` 文件中添加: ``` export SOLR_HOME=/path/to/solr-8.8.2 export PATH=$PATH:$...

    solr5.5.4使用文档

    ### Solr 5.5.4 使用文档 #### 一、环境配置与部署步骤 **1.1 环境需求** - **JDK**: 1.7 或以上版本。 - **Tomcat**: 8 或以上版本。 - **Solr**: 5.5.4 版本。 - **SolrJ**: 5.5.4 版本。 **1.2 部署步骤** 1...

Global site tag (gtag.js) - Google Analytics