[英]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
中得到了Apple
, Ball
和Company
所有單詞的突出顯示片段,其中包含的單詞不是相同順序,甚至都不是在一起出現的。
我只希望突出顯示縮寫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.