簡體   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