首页 > 代码库 > solr(1):简介与配置

solr(1):简介与配置

一、简介

1.1、solr是什么

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。

二、配置

1、在solr中默认是中文分析器,需要手工配置。配置一个FieldType,在FieldType中指定中文分析器。

2Solr中的字段必须是先定义后使用。

2.1、配置中文分析器

1、使用IK-Analyzer。把分析器的文件夹上传到服务器。

  技术分享

2、把分析器的jar包添加到solr工程中

[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /opt/tomcat/webapps/solr/WEB-INF/lib

3、需要把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath

[root@localhost WEB-INF]# cd /opt/tomcat/webapps/solr/WEB-INF/
[root@localhost WEB-INF]# mkdir classes
[root@localhost WEB-INF]# cd /opt/tar/IK\ Analyzer\ 2012FF_hf1/
[root@localhost IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /opt/tomcat/webapps/solr/WEB-INF/classes/
[root@localhost IK Analyzer 2012FF_hf1]#

注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。

4、配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置

[root@localhost IK Analyzer 2012FF_hf1]# vi /opt/solr/solrhome/collection1/conf/schema.xml

在其末尾添加如下:

<fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

技术分享

2.2、配置业字段

业务字段判断标准:

 1、在搜索时是否需要在此字段上进行搜索。例如:商品名称、商品的卖点、商品的描述

 2、后续的业务是否需要用到此字段。例如:商品id

如:商品id、商品title、卖点、价格、商品图片、商品分类名称、商品描述

Solr中的业务字段:

1、id——》商品id,其他的字段与对应字段参考此

[root@localhost IK Analyzer 2012FF_hf1]# vi /opt/solr/solrhome/collection1/conf/schema.xml

在其末尾添加如下:

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>

技术分享

2、重启tomcat

技术分享测试分词是否好用:

技术分享测试业务字段是好用:

1、添加测试数据

  技术分享

2、查询

技术分享

查询条件:

 查所有:*:*

 根据指定域(字段)查:字段名:字段值,如:item_title:测试

返回的域:

 返全部:默认

 返指定的:域名称,多个用逗号隔开,如:id,item_price

默认搜索的域:

 如果根据指定域查的时候,本来要写字段名:字段值,结果却只写了字段值,那么会搜索不到,如果给定了默认搜索的域则可以

高亮显示:

 hl.fl:高亮显示的域

 hl.simple.pre:开始标签

 hl.simple.post:结束标签

2.3、维护索引库

添加:添加一个json格式的文件就可以,参考上面

修改:添加一个新的文档,要求文档id和被修改文档的id一致(原理是先删除后添加)

删除:使用xml格式,有两种方法

 1、根据id删除:

  技术分享

 2、根据查询删除

  技术分享


本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1931892

solr(1):简介与配置