Lucene实现之Apache Solr快速入门搭建使用

简介

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎

工作方式

文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。


快速安装 

1、上传解压包到linux服务器

2、把/root/solr-4.10.3/dist/solr-4.10.3.war解压到tomcat的webapps下

3、新建solrhome目录

4、修改webapps下solr/solr.xml文件  指定solrhome的目录  solr-4.10.3.war

5、在部署目录tomcat/webapps/solr/WEB-INF/  新建classes目录

6、将IK目录下的两个dic文件和一个cfg.xml文件复制到classes目录 完成中文分词

7、solrhome/collection1/conf/schma.xml  中添加业务域
例如:

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="name" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="category" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="content" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="price" type="double" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="color" type="string" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="orderBy" type="int" indexed="true" stored="true" required="true" multiValued="false" />
   <field name="updatetime" type="date" indexed="true" stored="true" required="true" multiValued="false" />

  <!-- IK分词 -->
  <fieldType name="text_ik" class="solr.TextField">   
                   <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                   <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
         </fieldType>

完成后启动Tomcat  访问ip:端口/solr  即可访问solr-admin进行管理

查看中文分词效果

    

使用索引查询效果

    


Java使用SolrJ连接Solr

先导入SolrJ的jar包 可到maven中央仓库下载

示例java代码 

单机版连接
// Solr添加
	@Test
	public void testAdd() throws SolrServerException, IOException {
		// 创建HttpSolrServer对象
		SolrServer server = new HttpSolrServer("http://192.168.25.133:8080/solr/collection1");

		// 创建文档对象
		SolrInputDocument document = new SolrInputDocument();

		// 必须要有id 并且字段名称必须在schma.xml中定义
		document.addField("id", "123");
		document.addField("item_title", "zm");
		document.addField("item_image", "345");
		// 把文档对象写入索引库
		server.add(document);
		// 提交
		server.commit();
}

Spring整合版的SpringData Solr文档:

https://docs.spring.io/spring-data/solr/docs/4.0.4.RELEASE/reference/html/

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值