IT干货网

solr详解,开发必备

xmjava 2022年03月15日 编程设计 242 0

1.基础知识

创建索引的过程如下:

(1)、建立索引器IndexWriter,这相当于一本书的框架

(2)、建立文档对象Document,这相当于一篇文章

(3)、建立信息字段对象Field,这相当于一篇文章中的不同信息(标题、正文等)。

(4)、将Field添加到Document里面。

(5)、将Document添加到IndexWriter里面。

(6)、关闭索引器IndexWriter。

按照上图所示的结构,创建索引有三个基本的步骤:

(1)、创建Field,将文章的不同信息包装起来

(2)、将多个Field组织到一个Document里面,这样完成了对一篇文章的包装。

(3)、将多个Document组织到一个IndexWriter里面,也就是将多个文章组装起来,最终形成索引

看上去的solr就像一张表数据,同时你也可以建立多个表即多core,多core的创建请查看 IT虾米网

1.solr服务器配置

IT虾米网

linux

 2.spring data solr

IT虾米网

IT虾米网

3.分词器

推荐IKAnalyzer 和 mmseg4j

ik分词:IT虾米网
mmseg4j:IT虾米网

ik分词器

将ik-analyzer-solr5-5.x.jar这个jar包放入solr项目下的 WEB-INF\lib目录中去

将IKAnalyzer.cfg.xml,mydict.dic,stopword.dic放在 solr项目下的WEB-INF\classes目录中去

修改scheme文件

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

 mmseg4j分词器

   <dependency>
            <groupId>com.chenlb.mmseg4j</groupId>
            <artifactId>mmseg4j-solr</artifactId>
            <version>2.3.0</version>
        </dependency>

schema配置

 <fieldType name="text_mmseg4j_complex" class="solr.TextField" positionIncrementGap="100" >
  <analyzer>
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  </analyzer>
</fieldType>
<fieldType name="text_mmseg4j_maxword" class="solr.TextField" positionIncrementGap="100" >
  <analyzer>
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  </analyzer>
</fieldType>
<fieldType name="text_mmseg4j_simple" class="solr.TextField" positionIncrementGap="100" >
  <analyzer>    
    <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
  </analyzer>
</fieldType>
 

4.参考文献

IT虾米网

Apache Solr查询语法

IT虾米网


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!