当 _language 字段被视为上下文字段查询时,Solr Suggester 不起作用

问题描述 投票:0回答:0

Solr suggester 在通过上下文字段查询时返回 0 个结果。 在我的例子中,_language 是我的 ContextFieldQuery。 (我将建议者字典值和 BlendedInfixLookupFactory 作为建议者工作的 lookupImpl 传递)

我注意到的是,当查询如下时,结果来了: https://localhost:8983/solr/custom_master_index/suggest?q=avec&suggest.count=6&&suggest=true&suggest.dictionary=mySuggester&suggest.cfq=fr*

如果 cfq 作为 fr* 传递,那么我就可以看到建议结果。 但是,当我通过 suggest.cfq=fr-CA (实际上是从代码后面作为上下文语言传递的)时,结果是 0.

阅读更多相关内容后,我了解到这是因为 cfq _language 字段是一个标记化字段,它将值“fr”和“CA”分解为 2 个不同的值。

但是有人可以帮我解决这个问题吗?

以下是我的建议配置详细信息:

<searchComponent name="suggest" class="solr.SuggestComponent">
      <lst name="suggester">
        <str name="name">WEMSuggester</str>
        <str name="lookupImpl">BlendedInfixLookupFactory</str>
        <str name="dictionaryImpl">DocumentDictionaryFactory</str>
        <str name="field">autosuggestiontitle_sm</str>
        <str name="contextField">_language</str>
        <str name="suggestAnalyzerFieldType">text_suggester</str>
        <str name="highlight">true</str>
        <str name="buildOnStartup">false</str>
        <str name="buildOnOptimize">true</str>
        <str name="buildOnCommit">true</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>
        <str name="suggest.dictionary">WEMSuggester</str>
      </lst>
      <arr name="components">
        <str>suggest</str>
      </arr>
</requestHandler>
<fieldType name="text_suggester" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

<field name="autosuggestiontitle_sm" type="text_suggester" multiValued="true" indexed="true" stored="true"/>
solr sitecore solrcloud autosuggest
© www.soinside.com 2019 - 2024. All rights reserved.