zoukankan      html  css  js  c++  java
  • SOLR查询匹配关键词的方式

    如果在字段后直接写关键词,solr对条件关键词分词后,各分词之间按照OR的关系进行匹配

    如果查询条件关键词用半角双引号括叫起来,则分词间用AND关系进行匹配

    尽管使用双引号括起来,分词间可以按照与的关系进行查询,但是有一种情况是,分词后,有些词会被停用词过滤掉,从而只剩下有效词,这样也会造成匹配过多的情况,解决办法是:将整个条件词,配置到自定义词库中,这样就不会被分词,可以按照整改词进行匹配。或者配置SOLR不过滤停用词,配置如下

    编辑文件

    ${SOLR_HOME}\server\solr\new_core\conf\managed-schema

    找到需要查询的fieldType,去掉solr.StopFilterFactory的配置,如下:

    <fieldType name="text_hanlp" class="solr.TextField" >
        <analyzer type="index">
             <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory"  enableIndexMode="true"/>
             <!--<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>-->
        </analyzer>
        <analyzer type="query">
            <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="false"/>
            <!--<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>-->
        </analyzer>
    </fieldType>

    将solr.StopFilterFactory注释掉,重启solr,并且,文档必须重新索引的才能生效,之前索引的不能生效了。

    另外,solr的分词词典配置在:{SOLR_HOME}\server\resources下,以hanlp为例:此目录下放置hanlp.properties,在hanlp.properties中,指定自定义词典,停用词词典等,如:

    对于hanlp来说,修改词典后,要使词典生效,要删除对应的bin文件

     
  • 相关阅读:
    Codeforces Round #270 solution
    Codeforces Round #269 (Div. 2) solution
    Codeforces Round #268 (Div. 1) solution(upd div 1 C,div 2 A, B
    Codeforces Round #267 (Div. 2) solution
    Unity 绘制多边形
    DOTween 模仿NGUI Tween
    图像混合模式 正片叠底、滤色、叠加
    一只羊的四个月可以生一只小羊,小羊四个月后又可以生一只小羊 问50个月后有多少只羊(羊不会死)
    Unity CCTween UGUI 动画插件
    Unity UGUI 使用 CCTween 实现 打字效果
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/15725801.html
Copyright © 2011-2022 走看看