簡體   English   中英

搜索Solr停用詞

[英]Searching for Solr Stop words

我的solr字段中的一個是通過以下人工配置的,

<fieldType name="text_exact" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
 <analyzer type="index">
    <charFilter class="solr.HTMLStripCharFilterFactory"/>
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" splitOnNumerics="0" preserveOriginal="1" types="wdfftypes.txt"/>
    <filter class="solr.LowerCaseFilterFactory"/>
 </analyzer>
 <analyzer type="query">
   <tokenizer class="solr.WhitespaceTokenizerFactory"/>
   <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
   <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" splitOnNumerics="0" preserveOriginal="1" types="wdfftypes.txt"/>
   <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

這在我不想抽干的情況下有效,但是現在又有另一個用例引起了問題,人們開始尋找以下組合,

  • 常春藤:在這種情況下,僅返回常春藤的結果,而預期結果將是The。 我了解這是因為停用詞,但是是實現此目的的方法。 例如,如果他們在引號內搜索“常春藤”,則此方法應起作用。

  • (媽媽和我)或(“媽媽和我”):在這種情況下,也將&刪除,或者返回語句中某些部分包括媽媽和我的結果。

如果只有新數據以正確的方式運行,但無法重新編制索引,我可以。 另外,更改schema.xml文件是否會觸發完全復制?

問候,
阿育

您正在使用空白標記器。 因此,“常春藤”分為兩個字。

您可以使用較不WordDelimiterFilterFactory令牌化,然后使用WordDelimiterFilterFactory來激活protected="protwords.txt"選項,在此可以將“ ivy”設置為受保護的單詞,以便solr不會對此令牌化。

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.WordDelimiterFilterFactory

暫無
暫無

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

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