1. ホーム
  2. indexing

[解決済み] Solr - "group by "と "limit "の方法は?

2022-03-04 01:33:16

質問

データベースから次のようなインデックスを作成したとします。

======================================
| Id |  Code | Description           |
======================================
| 1  | A1    | Hello world           |
| 2  | A1    | Hello world 123       |
| 3  | A1    | World hello hi        |
| 4  | B1    | Quick fox jumped      |
| 5  | B1    | Lazy dog              |
...

さらに、ユーザーが "hello" を検索すると、レコード 1、2、および 3 が返されるとします。Solrをquot;group"にする方法はありますか? Code フィールドを作成し、制限(例えば、10レコード)を適用することができますか?GROUP BYとLIMITに対応するSQLを探しているようなものです。

また、この "group by" を実行する際に、最も関連性の高いドキュメントを選択し、そのドキュメントの Description フィールドを返します。

もちろん、Solrにすべてをアプリケーションに返させ、その結果を操作してGROUP BYとLIMITを実行することも可能です。可能であれば、このようなことはしたくありません。

どのように解決するのですか?

をご覧ください。 フィールドコラプシング Solr 4.0で利用可能です。関連性でグループをソートする。 group.sort=score desc .