相关疑难解决方法(0)

Solr SuggestComponent能够返回带状疱疹而不是整个字段值吗?

我使用solr 5.0.0并希望创建一个自动完成功能,从我的文档的word-gram(或带状疱疹)生成建议.问题是,作为建议查询的回报,我只得到搜索字段的完整"术语",这可能是极长的.

当前问题:

输入:"so"建议:"......极长的文字,所以 n长篇文章继续......"

"......下一篇长篇文章如此下一篇文章继续......"

目标:

输入:"so"

带状疱疹的建议:

" 所以 n"

" so lar"

" 所以测试"

等等

<searchComponent name="suggest" class="solr.SuggestComponent" 
               enable="${solr.suggester.enabled:true}"     >
<lst name="suggester">
  <str name="name">mySuggester</str>
  <str name="lookupImpl">AnalyzingInfixLookupFactory</str>      
  <str name="dictionaryImpl">DocumentDictionaryFactory</str>
  <str name="field">title_and_description_suggest</str>
  <str name="weightField">price</str>
  <str name="suggestAnalyzerFieldType">autocomplete</str>
  <str name="queryAnalyzerFieldType">autocomplete</str>
 <str name="buildOnCommit">true</str>
</lst>
Run Code Online (Sandbox Code Playgroud)

schema.xml中:

<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_de.txt" format="snowball"/>
      <filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true" outputUnigramsIfNoShingles="true"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

我想返回最多3个单词作为自动完成术语.这是可能的SuggestComponent或你会怎么做?无论我尝试什么,我总能收到匹配文档的完整字段值.

这是预期的行为还是我做错了什么?

提前谢谢了

solr autocomplete autosuggest

4
推荐指数
1
解决办法
1489
查看次数

标签 统计

autocomplete ×1

autosuggest ×1

solr ×1