0

SOLR 3.6 を実行しており、タグがインデックス付けされたドキュメントがあります。ユーザーが検索フレーズを入力したときに、そのクエリ内にタグが含まれているドキュメントを検索できるようにしたいと考えています。

たとえば、「ボートがタグ付けされているドキュメント」を検索するユーザーは、タグとして「ボート」が含まれるドキュメントに一致します。

ワイルドカード検索ができることは知っていますが、検索クエリではなく、solr フィールドにワイルドカードを適用する必要があります。

これに相当する MySQL は次のようになります。

SELECT * FROM `documents` WHERE "Any document that has boats tagged" LIKE 'CONCAT('%', `document`, '%');

したがって、このタイプのクエリを許可する SOLR ファクトリが必要です。

*document*:"Any document that has boats tagged"
4

1 に答える 1

0

tagsSolr のフィールドが、インデックス時とクエリ時の両方で LowerCaseFilterFactory を使用する複数値テキスト フィールドである場合、次のクエリを発行するだけです。

q=tags:(Super fast boats)

(ここで例を変更しました。)これにより、最初に3つのタグすべて(ある場合)を持つドキュメントが表示され、次に2つのタグ(ある場合)と1つのタグを持つドキュメントが続きます。

これは、schema.xml で<solrQueryParser defaultOperator="OR"/>. 代わりに AND がある場合は、単語を次のORように区切る必要があります。

q=tags:(any OR document OR that OR has OR boats OR tagged)

(タグとクエリにステミングを使用して、より多くのタグに一致させることもできますが、それは実験して決定する必要があります。)

于 2013-03-29T05:13:29.233 に答える