特定の単語を含むドキュメントの優先度を下げる
(The bot translated the original post https://lists.apache.org/thread/ry4k395bn1ykjr01fb7w83f2kg2zf5ft into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
こんにちは、
私は、特定の単語を含むドキュメントを「ディーブースト」して、それらが結果セットの最後に押しやられるようにしたい、または少なくとも結果セットの最初の60件に含まれないようにしたいと考えています。
クエリは、いくつかのフィルタクエリ(fq)パラメータを使用してq=:を実行しています。
このクエリの例では、単語「mask」をチェックし、それに負のブーストファクターを与えます。
試したこと:
bq=P_NewShortDescription:mask^-1
bq=(*:* -P_NewShortDescription:"mask")^0.5
しかし、単語「mask」を含むドキュメントはディーブーストされず、結果セットの後ろに押しやられません。
上記のクエリの結果では、「P_NewShortDescription」フィールドに単語「Mask」を含む3つのドキュメントがあります。
そのうち2つはディーブーストされず、それらには「mask」が含まれていないドキュメントと同じスコア1.5が付けられます。
残りの1つのドキュメントにはスコアが1で、結果セットの最後にあります。
特定の単語を含むドキュメントを正しくディーブーストする方法をアドバイスいただけますか?
これがチェックされるフィールドの定義です。
<field name="P_NewShortDescription" type="text_general" omitNorms="true"
multiValued="false" indexed="true" stored="true"/>
<fieldType name="text_general" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords.txt"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true"
ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.KStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
<filter class="solr.KeywordMarkerFilterFactory"
protected="protwords.txt"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true"
ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.KStemFilterFactory"/>
</analyzer>
</fieldType>
Solrバージョン = 7.7.2
よろしくお願いします。
Derek
トピックへ返信するには、ログインが必要です。