簡體   English   中英

有誰擁有在Solr中對多關鍵字進行同義詞搜索的最佳方法嗎?

[英]Anyone has the best way for synonym search of multi keyword in solr?

我想在solr中為多關鍵字使用同義詞搜索。 但這行不通。

我在synonym.txt中為“ multerm”設置了同義詞“ multi term”。 而且我希望Solr為“ multerm”創建查詢短語,就像“ field:” multiterm”〜0,但“ field:multi | field:term”。因此它無法進行多詞同義詞的親密搜索。

有沒有人在Solr中進行多詞同義詞搜索的最佳方法? 請幫幫我〜

這是我處理多字同義詞的方法。 在我的schema.xml中,fieldType定義如下:

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizer="solr.KeywordTokenizerFactory"/>

<fieldType name="custom_text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <!-- We will use synonyms only at index time to keep querying fast-->
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" tokenizer="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <!-- We will use synonyms only at index time to keep querying fast
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.SnowballPorterFilterFactory" language="English" />
    </analyzer>
</fieldType>

需要注意的幾件事:

  • 我僅在索引時間使用同義詞,以保持查詢快速。
  • 我添加了KeywordTokenizerFactory,它將整個字段視為單個令牌,並且不拆分多詞同義詞
  • 我添加了expand =“ true”。 如果expand為true,則同義詞將擴展為所有等效的同義詞。 如果為假,則所有等效的同義詞都將減少為列表中的第一個。
  • 查詢時間同義詞已被注釋掉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM