Solr建议者 - 不区分大小写

时间:2015-03-06 18:16:56

标签: java solr search-suggestion

我正在尝试使用Solr上的自动完成功能以及我找到的方法,使用Solr Suggester。但是,它没有按预期工作。如果有人调用http://localhost:8983/solr/techproducts/suggest?suggest=true&suggest.build=true&suggest.dictionary=mySuggester&wt=json&suggest.q=a,而索引的字段以Apple开头,则不会出现。我有suggest.q=A请求(大写)。

有没有办法让Solr Suggester不区分大小写?

以下是我的配置:

<searchComponent name="suggest" class="solr.SuggestComponent">
   <lst name="suggester">
      <str name="name">mySuggester</str>
      <str name="lookupImpl">FuzzyLookupFactory</str>
      <str name="dictionaryImpl">DocumentDictionaryFactory</str>
      <str name="field">autocomp</str>
      <str name="weightField">price</str>
      <str name="suggestAnalyzerFieldType">string</str>
   </lst>
</searchComponent>

以下是架构的相关部分:

<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
   <analyzer>
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
   </analyzer>
</fieldType>

<field name="autocomp" type="textSuggest" indexed="true" stored="true" multiValued="true"/>

<copyField source="title" dest="autocomp"/>

由于

2 个答案:

答案 0 :(得分:8)

我发现问题出在searchComponent配置的这一部分:

<str name="suggestAnalyzerFieldType">string</str>

您必须放置用于分析文本的字段。就我而言,它是:

<str name="suggestAnalyzerFieldType">text_general</str>

答案 1 :(得分:1)

虽然这可能无法解决不返回任何结果的问题,但为了实现不区分大小写,我认为您应该将suggestAnalyzerFieldType的值设置为textSuggest。见here。即使是拼写检查组件也有something alike但在另一个属性中。