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
是否支持中缀匹配吗?不幸的是,它将只匹配输入令牌中的整个前缀。