にいくつかのドキュメントがありSolr 4.0
ます。最も関連性の高いレコードを最初に表示し、次に関連性の低いレコードを表示したいと思います。
たとえば、次のようなタイトルのドキュメントが3つあります-
- 所得分配政策に向けて
- 所得分配と経済政策
- 発展途上国における所得分配政策
今、私が次のようなものをクエリするとq=title:Income Distribution Policy
、
ドキュメント番号3を最初に表示したい(最初の3つの単語は完全に一致するため)、次にドキュメント番号1を2番目に表示したい(残りの一致の「Towards」を除く)、次にドキュメント番号2を表示したい表示されます(間にいくつかの単語があるため)。
私schema.xml
はこのように見えます-
<types>
<fieldType name="search" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="title" type="search" indexed="true" stored="true"/>
</fields>
EDIT1デバッグ出力
"rawquerystring": "title:Income Distribution Policy",
"querystring": "title:Income Distribution Policy",
"parsedquery": "title:incom title:distribut title:polici",
"parsedquery_toString": "title:incom title:distribut title:polici"
編集2fieldTypeを変更しました
次の組み合わせを使用しましたが、出力は同じです。
- StandardTokenizerFactory-autoGeneratePhraseQueries(存在しません)-PorterStemFilterFactory。
- StandardTokenizerFactory-autoGeneratePhraseQueries="true"-PorterStemFilterFactory。
- StandardTokenizerFactory-autoGeneratePhraseQueries(存在しません)。
- StandardTokenizerFactory-autoGeneratePhraseQueries="true"。
- WhitespaceTokenizerFactory-autoGeneratePhraseQueries(存在しません)-PorterStemFilterFactory。
- WhitespaceTokenizerFactory-autoGeneratePhraseQueries="true"-PorterStemFilterFactory。
- WhitespaceTokenizerFactory-autoGeneratePhraseQueries(存在しません)。
- WhitespaceTokenizerFactory-autoGeneratePhraseQueries="true"。