小编wad*_*aal的帖子

根据句子而不是整个字段值构建Solr建议

我有一个带有建议组件的S​​olr实例.它使用AnalyzingInfixLookupFactory实现工作正常.

但是,我想将建议扩展到一个content字段,该字段可以包含大量文本.建议者可以找到建议,但它返回整个字段值,而不仅仅是句子或句子的一部分.

所以,如果我想要一个"foo"的建议,并且该content字段包含如下文本:

"我真的很喜欢比萨饼.还有甜甜圈.让我们从那个地方买点.这个酒吧吧."

建议将是整个文本,而不仅仅是"The foo bar place".而且,显然,当content数百字长时,这不是可以用的.

有没有办法限制建议的返回单词数量?

这是我的搜索组件:

<searchComponent name="suggest" class="solr.SuggestComponent">
  <lst name="suggester">
    <str name="name">autocomplete</str>
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str>
    <str name="indexPath">suggestions</str>
    <str name="dictionaryImpl">DocumentDictionaryFactory</str>
    <str name="field">suggest</str>
    <str name="suggestAnalyzerFieldType">text_suggest</str>
    <str name="buildOnStartup">false</str>
    <bool name="highlight">false</bool>
    <str name="payloadField">label</str>
  </lst>
</searchComponent>
Run Code Online (Sandbox Code Playgroud)

这是请求处理程序:

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
  <lst name="defaults">
    <str name="suggest">true</str>
    <str name="suggest.dictionary">autocomplete</str>
    <str name="suggest.count">10</str>
  </lst>
  <arr name="components">
    <str>suggest</str>
  </arr>
</requestHandler>
Run Code Online (Sandbox Code Playgroud)

最后,这里是建议的派生领域:

<fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/> …
Run Code Online (Sandbox Code Playgroud)

lucene indexing solr search-engine solr5

9
推荐指数
1
解决办法
546
查看次数

标签 统计

indexing ×1

lucene ×1

search-engine ×1

solr ×1

solr5 ×1