上下文查询中 solr docker 建议器的问题:未正确处理空白

时间:2021-03-30 08:27:30

标签: solr

我在 docker 容器中使用 Solr 8.8.1 版。我使用基于 CSV 文件的地址查询系统。我想得到一个与街道名称相关的城市。我的托管架构中的字段如下所示:

<fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
   <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
</fieldType>

<field name="sugAddress" type="text_suggest" multiValued="true" indexed="true" stored="true"/>
<field name="sugCity" type="text_suggest"  indexed="true" stored="true"/>
 <copyField source="CITY" dest="sugAddress"/>
 <copyField source="POSTCODE" dest="sugAddress"/>
 <copyField source="STREET" dest="sugAddress"/>
 <copyField source="CITY" dest="sugCity"/>

我的 solrconfig.xml 看起来像这样:

<searchComponent name="solr_suggest" class="solr.SuggestComponent">
    <lst name="suggester">
    <str name="name">sugCitySuggester</str>
    <str name="lookupImpl">BlendedInfixLookupFactory</str>
    <str name="highlight">false</str>
   <str name="dictionaryImpl">DocumentDictionaryFactory</str> 
    <str name="field">sugCity</str>
    <str name="buildOnOptimize">true</str>
    <str name="weightField">sugAddress</str> 
    <str name="contextField">sugAddress</str>
    <str name="suggestAnalyzerFieldType">text_suggest</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>
  </lst>
  <arr name="components">
    <str>solr_suggest</str>
  </arr>
</requestHandler>

正常查询(没有建议器)的结果如下所示:

{
 "sugAddress":["Am Bahndamm",
          "3",
          "3",
          "65432",
          "Testcity"],
        "sugStreet":"Am Bahndamm",
        "sugPostcode":"65432",
        "sugCity":"Testcity",
        "id":"1e470f44-fe3a-4fb9-b71d-ca556a48c55f",
        "_version_":1695636026132791297,
        "NO_FROM":[3],
        "NO_TO":[3],
        "POSTCODE":[65432]
},
{
 "sugAddress":["Teststreet",
          "4",
          "4",
          "65432",
          "Testcity"],
        "sugStreet":"Teststreet",
        "sugPostcode":"65432",
        "sugCity":"Testcity",
        "id":"1e470f44-fe3a-4fb9-b71d-ca556a48c55f",
        "_version_":1695636026132791297,
        "NO_FROM":[4],
        "NO_TO":[4],
        "POSTCODE":[65432]
}

所有索引都已构建。

以下查询正确得出一个结果:

http://localhost:8983/solr/addrescore/suggest?suggest=true&suggest.dictionary=sugCitySuggester&suggest.q=Test&suggest.cfq=Teststreet

但是以下没有返回任何结果:

http://localhost:8983/solr/addrescore/suggest?suggest=true&suggest.dictionary=sugCitySuggester&suggest.q=Test&suggest.cfq=Am%20Bahndamm

上下文查询中的空格似乎有问题。有人有想法吗?

0 个答案:

没有答案
相关问题