私はsolrnetを使用しています。タイトルと説明フィールドがあります。両方のフィールドを同時に検索する必要があります。どうすればいいですか?
3841 次
3 に答える
4
Jayendra の答えは正しいですが、インデックス時 (copyFields) に単一のフィールドにデータを集約せずにこれを行い、dismax の代わりに標準ハンドラーを使用してクエリ時にそれを行いたい場合は、SolrNet で次のことができます。
var query = Query.Field("title").Is(mytitle) || Query.Field("Description").Is(mydescription);
var results = solr.Query(query);
于 2011-10-16T13:41:50.940 に答える
2
標準のリクエスト ハンドラを使用している場合 -
新しいフィールド title_description を作成し、タイトルと説明フィールドをこのフィールドにコピーします。
そのフィールドをデフォルトの検索フィールドとして使用します。
<defaultSearchField>title_description</defaultSearchField>
デフォルトの検索フィールドでの検索で起動されたクエリ q -
q=bank
また
dismax または edismax クエリ パーサーを使用できる場合は、新しい要求ハンドラーを定義できます。
クエリ フィールドを qf として定義します。
<requestHandler name="dismax" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<!-- Query settings -->
<str name="defType">edismax</str>
<str name="qf">
title description
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
</requestHandler>
クエリ - タイトルと説明フィールドを検索する qt パラメータとして dismax を渡します
q=bank&qt=dismax
于 2011-10-16T08:56:53.680 に答える