ある種のバージョニングを備えた Solr スキーマがあります。ID にはバージョン番号が含まれているため、既存のドキュメントは新しいものとしてそのまま残り、インデックスが作成されます。サンプル内容:
id = foo1
name = foo
version = 1
data = x
id = foo2
name = foo
version = 2
data = y
id = bar1
name = bar
version = 1
data = x
2 つの異なる検索シナリオがあります。すべてのバージョンを検索するか、最新のものだけを検索します。data
1 つ目は些細なことですが、それぞれの最新バージョンのみをフィールドで検索するにはどうすればよいname
でしょうか。上記のサンプルでは、latest で "x" を検索し、"bar1" のみがヒットすることを期待しています。
http://wiki.apache.org/solr/FieldCollapsingを使用した解決策を期待していましたが、 group.field=name
Solrで「x」を検索すると、検索後にグループ化され、上記の 2 つの名前のバージョン 1 が得られます。フィルタークエリのように機能する必要があります。