我正在使用solr 6.5版本的建议组件。我已经将BlendidInfixLookupFactory配置为基于搜索关键字对建议进行排序。
下面是我的当前配置:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">BlendedInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">title</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<str name="blenderType">position_linear</str>
<str name="numFactor">20</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
但是它不是根据关键字的位置进行排序,而是以随机顺序返回,并且不确定所遵循的顺序是什么。根据solr文档,它应该根据职位进行排序,但是它没有按照这个顺序工作。
,例如:我的搜索关键字是蓝色的
我的预期结果:蓝色,蓝鲸,蓝色水,天蓝色,还有蓝色玩具
的实际结果:天蓝色,蓝鲸,有蓝色玩具,蓝色水,蓝色
有人能告诉我是否可以这样分类吗?
发布于 2018-01-25 12:12:13
根据您的配置,您没有对这些建议使用任何权重,因此值总是为0。因此,对于所有建议,position_linear将与计算相同的逻辑相同,即position_linear:加权字段值*(1-0.10*位置)。
您可以添加一个对所有建议都具有常数值的字段,因此,当您尝试执行位置线性时,它将按术语按位置增加。
我希望这能帮到你
https://stackoverflow.com/questions/48204244
复制相似问题