簡體   English   中英

如何在Apache Solr中使用首字母縮寫詞?

[英]How to use acronyms in Apache Solr?

我使用Solr提供的配置的text_general字段來存儲網頁內容,如下所示:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

領域:

<field name="content" type="text_general" stored="true" indexed="true"/>

說,在synonyms.txt我有一個條目:

ABC=>Apple Ball Company

如果我在帶有q=content:ABC content字段上執行搜索,則對我沒有“ Apple Ball Company ”的任何內容的數據進行搜索。

我在我的content中得到了AppleBallCompany所有單詞的突出顯示片段,其中包含的單詞不是相同順序,甚至都不是在一起出現的。

我只希望突出顯示縮寫ABC和/或擴展“ Apple Ball Company ”(如果這些單詞以相同的順序出現)。

SynonymFilterFactory的多單詞同義詞存在問題,導致“ sausagination”。 在這里對此進行了很好的解釋: https : //lucidworks.com/2014/07/12/solution-for-multi-term-synonyms-in-lucenesolr-using-the-auto-phrasing-tokenfilter/原因是過濾器僅考慮標記的偏移量,而不考慮位置長度增量。 這已通過SynonymGraphFilter解決,請參閱https://lucene.apache.org/solr/guide/6_6/filter-descriptions.html#FilterDescriptions-SynonymGraphFilter

因此,請使用SynonymGraphFilter而不是不推薦使用的SynonymFilterFactory ,例如<filter class="solr.SynonymGraphFilterFactory" synonyms="mysynonyms.txt"/>

暫無
暫無

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

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