私は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 に答える