我需要搜索一些地址数据。我在邻近搜索方面有些挣扎。
例如我要搜索的地址的地址是:
卡斯托街西朗肯斯顿塔斯
当我尝试搜索(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>
您知道我将如何做才能得到结果吗?
答案 0 :(得分:1)
您使用的KeywordTokenizerFactory将整个内容保留为一个术语,因此唯一被索引的术语是“ cato street west launceston tas”。当然,这与您的查询不匹配。
使用其他标记器,例如WhitespaceTokenizerFactory,它应该可以工作