2016-08-29 40 views
0

我想在索引和查詢過程中從我的索引中刪除停用詞,但不知何故stopwords.txt中的單詞似乎不會從我的索引中刪除(我仍然可以使用這些一個查詢並獲得結果與他們打交道)。Solr索引刪除停用詞似乎沒有工作

這裏是我的schema.xml:

<fieldType name="text" class="solr.TextField"   positionIncrementGap="100"> 
      <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/> 
      <!-- in this example, we will only use synonyms at query time 
      <filter class="solr.SynonymFilterFactory"   synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> 
      --> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.StopFilterFactory"   ignoreCase="true"   words="stopwords.txt" /> 
      <filter class="solr.WordDelimiterFilterFactory"   generateWordParts="1" generateNumberParts="1" catenateWords="1"   catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>   
      <filter class="solr.KeywordMarkerFilterFactory"   protected="protwords.txt"/> 
      <filter class="solr.KStemFilterFactory"/> 
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
      </analyzer> 
      <analyzer type="query"> 
      <tokenizer class="solr.StandardTokenizerFactory"/> 
      <filter class="solr.SynonymFilterFactory"   synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.StopFilterFactory" ignoreCase="true"   words="stopwords.txt" /> 
      <filter class="solr.WordDelimiterFilterFactory"   generateWordParts="1" generateNumberParts="1" catenateWords="0"   catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>   
      <filter class="solr.KeywordMarkerFilterFactory"   protected="protwords.txt"/> 
      <filter class="solr.KStemFilterFactory"/> 
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
      </analyzer> 
     </fieldType> 
     <field name="_version_" type="long" indexed="true" stored="true"/> 
     <field name="id" type="string" indexed="true" stored="true"   required="true" multiValued="false" /> 
     <field name="post_content" type="text" indexed="true"   stored="true"/> 
     <field name="post_title" type="text" indexed="true" stored="true"/> 
     <field name="post_date" type="date" indexed="true" stored="true"/> 
     <field name="_text_" type="text" indexed="true"   stored="false"   multiValued="true" termVectors="true"     termPositions="true" termOffsets="true"/> 

我使用Solr的6.0。

感謝您的任何建議,

薩賓

+0

是否存在具有相同名稱的文件?你在文件stopwords.txt中有這些單詞嗎? –

+0

對不起,打擾了社區 - 我自己通過添加「format =」雪球「」 –

+0

沒問題自己解決了這個問題......它可以幫助其他人...... :) –

回答

0

默認文件stopwords.txt沒有任何停止的話在裏面。

您可以在任何由Solr給出的configSet中檢查相同的內容。

但是,如果你檢查conf/lang文件夾,你會發現很多stopword文件。

根據您的語言,您可以使用適用於您的任何一種。

爲了測試目的,您可以複製stopwords_en.txt文件中的停用詞,並將其粘貼到路徑configsets/basic_configs/conf/的文件stopward.txt中。這裏的configset對你來說可能會有所不同。這取決於你使用了哪一個。