私のプロジェクトでは、solrを使用して、BooksやPersonsなど、さまざまな種類のドキュメントにインデックスを付けます。いくつかの一般的なフィールド(名前など)とタイプ固有のフィールド(カテゴリや人々が属するグループなど)を使用します。 。
本と人物の両方を検索できるクエリを実行し、ドキュメントタイプごとにいくつかのフィルターを適用します。何かのようなもの:
- 名前やコンテンツに「Jean」が含まれるすべての本と人物を検索する
- ただし、「フィクション」と「ファンタジー」のカテゴリの本のみ
- そして「パンゴリン」グループの人だけ
- スコアでソートされたすべて
これを行う非常に簡単な方法は次のとおりです。
q = name:jean content:jean
&
fq=
(type:book AND category:(fiction fantasy))
OR
(type:person AND group:pangolin)
しかし、残念ながら、fq
キャッシュされているように、私は次のように、よりシンプルで再利用可能fq
なものを好みます。
fq=type:book
、fq=type:person
、fq=category(fiction fantasy)
、fq=group:pangolin
。
多くのクエリをマージまたは結合するようにsolrに指示する方法はありますか?fq
一緒に「グループ化」のようなもの。
でネストされたクエリについて少し読みました_query_
が、ドキュメントがほとんどないため、探しているソリューションではないと思います。