solr的基本使用

来源:互联网 发布:2016淘宝网红店铺排名 编辑:程序博客网 时间:2024/06/08 19:30

目的:

1.通过一些配置,在solr的后台能进行查询操作

2.配置使用中文分词器

一、schema.xml文件配置

   在schema.xml文件中,主要配置了solrcore的一些数据信息,包括Field和FieldType的定义等信息,在solr中,Field和FieldType都需要先定义后使用

1.定义Field域

   <field name="p_id" type="long" indexed="true" stored="true" required="true"/>

   Name:指定域的名称

   Type:指定域的类型

   Indexed:是否索引

   Stored:是否存储

   Required:是否必须

   multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field像存储多个值的话,必须将multiValued设置为true。

2.dynamicField(动态域)

   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>

   Name:指定动态域的命名规则

3.uniqueKey(指定唯一键)

   <uniqueKey>id</uniqueKey>

   其中的id是在Field标签中已经定义好的域名,而且该域要设置为required为true。

   一个schema.xml文件中必须有且仅有一个唯一键

4.copyField(复制域)

   <copyField source="name" dest="text"/>

   Source:要复制的源域的域名

   Dest:目标域的域名

   由dest指的的目标域,必须设置multiValued为true。

5.fieldType(定义域的类型)

   <fieldType name="string" class="solr.StrField" sortMissingLast="true" />

  <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
         <tokenizer class="solr.StandardTokenizerFactory"/>
           <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
           <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    <analyzer type="query">
       <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
      <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
     <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
</fieldType>

Name:指定域类型的名称

Class:指定该域类型对应的solr的类型

Analyzer:指定分析器

Type:index、query,分别指定搜索和索引时的分析器

Tokenizer:指定分词器

Filter:指定过滤器

注:field和filedType需要根据自己的业务需求进行配置

配置完schema.xml后,重启tomcat,登陆到solr的管理后台,点击query–>execute query,即可看到查询出来的数据如图1


  图(1)

二、中文分词器

使用ikanalyzer进行中文分词,

1.将ikanalyzer的jar包复制到tomcat7/webapps/solr/WEB-INF/lib目录下如图2.


图(2)

2.将ikanalyzer的扩展词库的配置文件复制到tomcat7/webapps/solr/WEB-INF/classes 目录如图3


图(3)

3.将stopword.dic复制到tomcat7/webapps/solr/WEB-INF/classes/dic目录图4


                                                                            图(4)

4.配置FieldType如图5


                                                                            图(5)

5.配置使用中文分词的field如图6


                                                                            图(6)

6.重启tomcat,进入solr的管理后台,点击Analysis,选择刚创建的name域,即可看到分词效果如图(7)


  图(7)

schema.xml配置实例如图8:


 图(8)

原创粉丝点击