次のようなインデックスを想像してみてください。
id partno name description
1 1000.001 Apple iPod iPod by Apple
2 1000.123 Apple iPhone The iPhone
ユーザーが「Apple」を検索すると、両方のドキュメントが返されます。ここで、検索を1つ以上のフィールドに限定して、検索結果を絞り込むことができるようにします。これらのフィールドには、「Apple」という用語を含むドキュメントが含まれています。
したがって、理想的には、ユーザーは最初のクエリの後にUIのフィルターセクションに次のようなものが表示されます。
ユーザーがフィールド「description」にフィルターを適用すると、フィールド「description」内に「Apple」という用語が含まれているドキュメントのみが返されます。したがって、その2番目の要求の結果セットはiPodドキュメントのみになります。そのためには、次のようなクエリを使用します?q=Apple&qf=description
(Extended DisMax Query Parserを使用しています) 。
Solrでそれをどのように達成できますか?
私はすでにコンポーネントのファセット、グループ化、および強調表示を試しましたが、これに対する適切な解決策には実際には到達しませんでした。
[更新]
もう一度明確にするために:ここでの主な問題は、[フィールドでフィルター]セクションを表示するために必要な情報を取得することです。これには、フィールドの名前とフィールドごとのヒット数が含まれます。これらのフィルターの1つを適用した2番目のリクエストの送信は、すでに機能しています。