根据关键字的位置对solr中的建议进行排序
Sort suggestions in solr based on the position of keyword
我在 solr 6.5 版本中使用 Suggest 组件。我已将 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 文档,它应该根据位置排序,但它不按该顺序工作。
例如:我的搜索关键字是蓝色
我的预期结果:蓝色,蓝色的鲸鱼,蓝色的水,蓝色的天,还有一个蓝色的玩具
实战结果:天蓝,蓝鲸,有蓝玩具,蓝水,蓝
谁能告诉我是否可以这样排序?
根据您的配置,您没有为这些建议使用任何权重,因此值始终为 0。因此对于所有建议 position_linear 将与计算相同的逻辑相同 position_linear: weightFieldValue*(1 - 0.10*position).
您可以为所有建议添加一个可以具有常量值的字段,这样当您尝试进行位置线性时,它会根据条款增加位置
希望对您有所帮助
我在 solr 6.5 版本中使用 Suggest 组件。我已将 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 文档,它应该根据位置排序,但它不按该顺序工作。
例如:我的搜索关键字是蓝色
我的预期结果:蓝色,蓝色的鲸鱼,蓝色的水,蓝色的天,还有一个蓝色的玩具
实战结果:天蓝,蓝鲸,有蓝玩具,蓝水,蓝
谁能告诉我是否可以这样排序?
根据您的配置,您没有为这些建议使用任何权重,因此值始终为 0。因此对于所有建议 position_linear 将与计算相同的逻辑相同 position_linear: weightFieldValue*(1 - 0.10*position).
您可以为所有建议添加一个可以具有常量值的字段,这样当您尝试进行位置线性时,它会根据条款增加位置
希望对您有所帮助