繁体   English   中英

如何在solr中加入短语?

[英]How to facet phrases in solr?

最近我一直试图将facet应用于一些具有多个单词(短语)的值的字段? 我被建议使用带状疱疹,但我不确定这是否会按预期工作,因为所需的短语应该从给定的列表中获取。

例如:当我将facet应用于一个字段时,我会得到“信息”和“技术”的单独方面,而我希望它是“信息技术”的单一方面。

如何面对特定领域的特定短语?

编辑:必填字段的架构如下所示:

<fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>

        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
        <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
             possible with WordDelimiterFilter in conjuncton with stemming. -->
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
      </fieldType>

带状疱疹过滤器不起作用,因为它显示了信息技术的三个方面:信息,技术和信息技术。

问题似乎是分析器将分面字段分成索引。 如果你想在可能有多个单词的字段上进行分面,那么我们应该使用不分割单词的分析器。 它可以是solr中的“复制字段”,这样您的索引过程就不会真正改变。 例如,您可以使用下面的内容。

<field name="facet_text_en_nosplit" type="string" indexed="true" stored="false" multiValued="true"/>

在构面查询中使用上述字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM