Solr suggester:上下文筛选器未正确应用于FileDictionaryFactory
在中,它表示上下文过滤仅在“使用Solr suggester:上下文筛选器未正确应用于FileDictionaryFactory,solr,Solr,在中,它表示上下文过滤仅在“使用AnalyzingInfixLookupFactory或BlendedInfixLookupFactory时,在DocumentDictionaryFactory的支持下”生效 但是,我发现在使用FileDictionaryFactory时会应用上下文过滤。这不起作用,因为没有要应用上下文筛选器的文档 http://localhost:8983/solr/mycore/suggest?qt=suggest&suggest.dictionary=locati
AnalyzingInfixLookupFactory
或BlendedInfixLookupFactory
时,在DocumentDictionaryFactory
的支持下”生效
但是,我发现在使用FileDictionaryFactory
时会应用上下文过滤。这不起作用,因为没有要应用上下文筛选器的文档
http://localhost:8983/solr/mycore/suggest?qt=suggest&suggest.dictionary=location&q=russia
> Returns ["Russia"]
http://localhost:8983/solr/mycore/suggest?qt=suggest&suggest.dictionary=location&q=russia&cfq=a
> Returns []
这是我的建议器配置:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">location</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">FileDictionaryFactory</str>
<str name="sourceLocation">tdwg.txt</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<str name="highlight">false</str>
</lst>
<lst name="suggester">
<str name="name">common-name</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">region.vernacular_names_t</str>
<str name="indexPath">common_name_suggest</str>
<str name="contextField">searchable.context_ss</str>
<str name="suggestAnalyzerFieldType">text_general</str>
<str name="highlight">false</str>
</lst>
</searchComponent>
位置
解析固定查找工厂
文件字典工厂
tdwg.txt
正文\u概述
假的
通用名
解析固定查找工厂
文档字典工厂
地区、方言名称
常用名称建议
searchable.context\u ss
正文\u概述
假的
正如您所看到的,对于其中一个建议,我确实希望进行上下文过滤(而且它工作正常)。因此,我不能简单地从请求中删除suggest.cfq
参数
我是否可以更改我的配置,使上下文筛选器不应用于我的
FileDictionaryFactory
suggester?我过去已经遇到过这个问题,似乎当请求中存在suggest.cfq
时,上下文筛选器将应用于每个(已启用)支持它的查找实现(AnalyzingFix和BlendedInfix)
似乎除了切换到另一个查找impl之外,没有其他解决方案。对于不希望应用上下文过滤的词典,这两个值要比这两个值高
例如,您可以尝试对“位置”建议器使用FuzzyLookupFactory
,而不会应用上下文筛选器
NB:这是一个解决办法,因为不可能通过FuzzyLookup或AnalyzingLookup实现获得中缀匹配(只考虑输入令牌的整个前缀)
如果您确实需要两个建议者的中缀匹配,则在合并建议之前,您可能需要提出两个并行请求:/。我怀疑是这样的。。。您知道
FuzzyLookup
是否支持中缀匹配吗?不幸的是,它将只匹配输入令牌中的整个前缀。