Solr Suggester - 不区分大小写
Solr Suggester - case insensitive
我正在尝试在 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"/>
谢谢
虽然这可能无法解决不返回任何结果的问题,但要实现不区分大小写,我认为您应该将 suggestAnalyzerFieldType 的值设置为 textSuggest。请参阅 here. Even the spell check component had something alike,但在另一个属性中。
我发现问题出在 searchComponent 配置的这一部分:
<str name="suggestAnalyzerFieldType">string</str>
您必须输入用于分析文本的字段。在我的例子中是:
<str name="suggestAnalyzerFieldType">text_general</str>
我正在尝试在 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"/>
谢谢
虽然这可能无法解决不返回任何结果的问题,但要实现不区分大小写,我认为您应该将 suggestAnalyzerFieldType 的值设置为 textSuggest。请参阅 here. Even the spell check component had something alike,但在另一个属性中。
我发现问题出在 searchComponent 配置的这一部分:
<str name="suggestAnalyzerFieldType">string</str>
您必须输入用于分析文本的字段。在我的例子中是:
<str name="suggestAnalyzerFieldType">text_general</str>