对于已经在 Solr 中使用Join Query Domain Changes功能的人,Elastisearch 中是否有类似的功能?我不是在寻找加入查询作为答案(因为我认为它不是,但可能是我忽略了它。请说服我:))。
因此,例如,如果我在一个集合中同时拥有 Products 和 Sales 数据(不,没有去规范化)并且我尝试做一个 facet.pivot(使用 json.facet)来带来product_name我sale_country会在 Solr 中做这样的事情(product_id公共/标识符字段在哪里),
json.facet =
{
"product_name": {
"type": "terms",
"field": "product_name",
"numBuckets": true,
"sort": index
"facet": {
sale_location: {
domain: {
join: {
from: "product_id",
to: "product_id"
},
filter: "type:sale"
},
type: terms,
field: "sale_location",
numBuckets: true,
"sort": index
}
}
}
}
示例 Solr 数据集如下所示,
{
"_id": "1!1",
"product_id": 1,
"product_name": "bananna"
},
{
"_id": "2!2",
"product_id": 2,
"product_name": "apple"
},
{
"_id": "1!123",
"product_id": 1,
"sale_id": 123,
"sale_country": "Jamaica"
},
{
"_id": "2!124",
"product_id": 2,
"sale_id": 124,
"sale_country": "Poland"
}
我不想要的答案如下(因为我已经知道了),
- 去规范化你的数据
- 搜索并不是关系数据的真正场所
- 使用 Solr 而不是 Elasticsearch,因为它已经在那里工作了