私はsolrを初めて使用します。データベースを検索したい。値をインポートしてインデックスを作成することはできますが、検索中にフィールド名を検索クエリで指定する必要があるようです。フィールド名を指定せずに実行するにはどうすればよいですか。
1 に答える
0
すべてのデータをデフォルトフィールドにインポートできます。その場合、フィールド名を明示的に指定する必要はありません。(必要に応じて可能ですが)
Solrのデフォルトschema.xml
には、このような「キャッチオール」フィールドを使用するための例がすでに含まれています。
まず、フィールドは他のフィールドと同様に宣言する必要があります。
<field name="text" type="text_general" indexed="true"
stored="false" multiValued="true"/>
次に、この新しいフィールドをデフォルトフィールドとして宣言する必要があります。特定のフィールドが検索されない場合は常に、次のフィールドが検索されます。
<defaultSearchField>text</defaultSearchField>
copyField
また、既存のすべてのフィールドをキャッチオールフィールドにコピーするステートメントも必要です。
<copyField source="cat" dest="text"/>
<copyField source="name" dest="text"/>
<copyField source="my_special_field_1" dest="text"/>
<copyField source="my_special_field_2" dest="text"/>
...
したがって、フィールドmy_special_field_1
にインデックスが付けられると、その値もフィールドに追加されtext
ます。
text
ショートカットとして、すべてのフィールドを次のフィールドにコピーできます。
<copyField source="*" dest="text"/>
その後、フィールドを指定せずに検索を実行できます。
于 2011-11-02T10:44:54.960 に答える