我有一些地址数据需要搜索。我在邻近搜索方面有点挣扎。
一个例如。我要搜索的地址是:
卡托街西朗塞斯顿 TAS
当我尝试搜索 (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>
知道我该怎么做才能得到结果吗?
您正在使用的 KeywordTokenizerFactory 将整个事物作为一个术语,因此唯一索引的术语是“cato street west launceston tas”。当然,这与您的查询不符。
使用其他一些标记器,比如WhitespaceTokenizerFactory,它应该可以工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句