1つの情報に1対多の情報が紐付くようなケースでファセット検索する方法の御指南を頂けますでしょうか。
- id
- name : 物件名
- station_near : 最寄り駅
- line : 1つ以上の最寄り駅の路線 (複数持たせたいため、仮に配列型としております)
- station : 1つ以上の最寄り駅
- station_distance_by_walk : それぞれの駅からの徒歩分数
{
"id" : 1,
"name" : "foo",
"station_near" : [
{ "line" : ["5001_山手線","5002_京浜東北線",...], "station" : "1234_品川", "station_distance_by_walk" : 10},
{ "line" : ["5001_山手線","5002_京浜東北線",...], "station" : "2345_横浜", "station_distance_by_walk" : 8},
]
},
{
"id" : 2,
"name" : "bar",
"station_near" : [
{ "line" : ["5003_東西線"], "station" : "3456_早稲田", "station_distance_by_walk" : 10}
]
},
...snip...
Case1: station(駅)毎に何件の案件が存在するかをファセット検索します
- 1234_品川 : n件
- 2345_横浜 : n件
- 3456_早稲田 : n件
Case2: line(路線)の下に、station(駅)毎に何件の案件が存在するかをファセット検索します
- 5001_山手線 : n件
- 1234_品川 : n件
- 2345_横浜 : n件
- 5002_京浜東北線 : n件
- 1234_品川 : n件
- 2345_横浜 : n件
- 5003_東西線 : n件
Solr4から導入された注目のPivotFacetingを、elasticsearchでも同様に使う実例サンプルの紹介をしていただきました。Thank you for posting an article by @johtani.
http://blog.johtani.info/blog/2014/05/07/aggregation-example/