私のプロジェクトでは、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_が、ドキュメントがほとんどないため、探しているソリューションではないと思います。