1

私はsolrを初めて使用します。データベースを検索したい。値をインポートしてインデックスを作成することはできますが、検索中にフィールド名を検索クエリで指定する必要があるようです。フィールド名を指定せずに実行するにはどうすればよいですか。

4

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