solr - SOLR 6.6:具有上下文过滤的建议器不返回结果
问题描述
以前,我曾建议使用上下文过滤的配置:
<searchComponent name="suggest" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">text_spell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
<lst name="spellchecker">
<str name="name">de</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">autosuggest_de</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
<lst name="spellchecker">
<str name="name">en</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.collate">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
在 solr 管理控制台中,我能够检索结果:
现在,我创建了包括上下文过滤的配置:
<searchComponent name="hmmSuggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">default</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
</lst>
<lst name="suggester">
<str name="name">de</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_de</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
</lst>
<lst name="suggester">
<str name="name">en</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
</lst>
</searchComponent>
<requestHandler name="/hmmSuggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">5</str>
<str name="suggest.dictionary">default</str>
<str name="suggest.collate">true</str>
<str name="suggest.onlyMorePopular">true</str>
</lst>
<arr name="components">
<str>hmmSuggest</str>
</arr>
</requestHandler>
但我没有得到任何结果。
我是否需要在我的配置中添加更多内容,或者可能是什么问题,或者我如何检查问题?
测试 1
我尝试使用类 spellcheckcomponent 而不是建议器,但我仍然得到空结果。
<searchComponent name="hmmSuggest" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">text_spell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
<lst name="spellchecker">
<str name="name">de</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_de</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
<lst name="spellchecker">
<str name="name">en</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">autosuggest_en</str>
<str name="contextField">availableForWarehouses_string_mv</str>
<str name="suggestAnalyzerFieldType">string</str>
<str name="buildOnStartup">true</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="accuracy">0.35</str>
</lst>
</searchComponent>
<requestHandler name="/hmmSuggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="spellcheck">true</str>
<str name="spellcheck.count">5</str>
<str name="spellcheck.dictionary">default</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.onlyMorePopular">true</str>
</lst>
<arr name="components">
<str>hmmSuggest</str>
</arr>
</requestHandler>
解决方案
推荐阅读
- windows - 尝试可视化堆碎片
- android - 从 USB YubiKey 获取 OTP
- windows - Windows HID 驱动程序中的 [Read Report & Get Input Report] 、 [Write Report & Set Output Report] 有什么区别?
- azure-ad-b2c - 在 Azure B2C 自定义策略中,是否需要将登录元数据 URL 迁移到 b2clogin.com?
- python - 如果两个节点断开连接,如何连接它们
- python - 迭代器列表的乘法
- sql - 多次计数
- powershell - 使用 PowerShell 删除除管理员帐户外的 Windows 用户配置文件
- r - 面积图中多个变量的堆叠均值
- c# - 更改数据源时语法编辑器控件不刷新 UI