如何为多词自动建议配置 solr(4.10)?

Posted

技术标签:

【中文标题】如何为多词自动建议配置 solr(4.10)?【英文标题】:How to configure solr(4.10) for multiple words auto suggestion? 【发布时间】:2016-11-02 08:01:31 【问题描述】:

我想在 Solr 中创建带有自动建议的集合,我尝试了单个单词,它工作正常,但我正在寻找短语,例如,如果我们输入“Barack”,它应该是“Barack”、“Barack Obama”、“Barack Obama”美国总统”。

我有 6 个字段,但只想为一个字段(即内容)提供建议,如何根据这些字段配置 schema.xml 和 solr config.xml。我尝试了很多例子,但这对我不起作用! 有什么简单的解决方案吗?任何帮助将不胜感激! 提前致谢。

感谢 Amit 的回复,我也试过了,但没有得到我想要的东西 我的 schema.xml 是这样的我想要关于我的内容字段的建议 我的 solr 配置如下所示!

<field name="id" type="string" indexed="true" stored="true" required="true"   multiValued="false" />
   <field name="Content" type="suggest_phrase" indexed="true" stored="true" />
   <field name="Lang" type="string" indexed="true" stored="true" />
   <field name="PubDate" type="tdate" indexed="true" stored="true" />
   <field name="Section" type="string" indexed="true" stored="true" />
   <field name="PaperName" type="string" indexed="true" stored="true" />
   <field name="Page_No" type="tint" indexed="true" stored="true" />

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


    <!-- search content -->
  <searchComponent name="suggest_phrase" class="solr.SpellCheckComponent">
    <lst name="spellchecker">
        <str name="name">suggest_phrase</str>
        <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
        <str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookup</str>
        <str name="field">suggest_phrase</str>
        <str name="buildOnCommit">true</str>
    </lst>
</searchComponent>
<requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest_phrase">
    <lst name="defaults">
        <str name="spellcheck">true</str>
        <str name="spellcheck.dictionary">suggest_phrase</str>
        <str name="spellcheck.onlyMorePopular">true</str>
        <str name="spellcheck.count">10</str>
        <str name="spellcheck.collate">false</str>
    </lst>
    <arr name="components">
        <str>suggest_phrase</str>
    </arr>
</requestHandler>

【问题讨论】:

【参考方案1】:

您可以在用于自动建议的字段上使用木瓦。

【讨论】:

嗨,阿曼,正如你所说,我尝试使用 Shinglefilterfactory,但没有得到我想要的东西!还有其他解决方案吗??

以上是关于如何为多词自动建议配置 solr(4.10)?的主要内容,如果未能解决你的问题,请参考以下文章

如何针对生产调整Apache Solr 的内存

Spring-Data-Solr 如何提供认证数据

Solr Highlighting:如何为同一字段请求多个片段长度?

如何为 Elastic Load Balancer 配置自动超时?

如何为自己的WordPress站点安装SSL证书开启https访问

如何为类型配置自动缩放:对象