SOLR邻近搜索设置

时间:2018-09-19 01:45:00

标签: solr

我需要搜索一些地址数据。我在邻近搜索方面有些挣扎。

例如我要搜索的地址的地址是:

卡斯托街西朗肯斯顿塔斯

当我尝试搜索(CATO WEST)〜2时,我的邻近搜索搜索查询不返回任何内容

数据字段(schema.xml)的配置如下:

<field name="street_name_space" type="text_general" indexed="true" stored="true"/>

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

请求处理程序如下:

<requestHandler name="/proximity" class="solr.SearchHandler">
     <lst name="defaults">
     <str name="defType">edismax</str>
        <str name="echoParams">explicit</str>
        <str name="qf">street_name_space</str>
        <str name="qs">10</str>
        <str name="pf">street_name_space</str>
        <str name="ps">10</str>
       <str name="echoParams">explicit</str>
       <str name="fl">street_name, street_name_clean, street_name_space</str>          
     </lst>
    </requestHandler>

您知道我将如何做才能得到结果吗?

1 个答案:

答案 0 :(得分:1)

您使用的KeywordTokenizerFactory将整个内容保留为一个术语,因此唯一被索引的术语是“ cato street west launceston tas”。当然,这与您的查询不匹配。

使用其他标记器,例如WhitespaceTokenizerFactory,它应该可以工作