如果索引中有两个文档,locale
值en
和pt
,
{
"slug": "my-object",
"locale": "en",
}
{
"slug": "my-object",
"locale": "pt",
}
我运行一个查询,其结果应位于我不具备的区域设置fr
,
{
"query": {
"bool": {
"must": [{ "term": { "slug": "my-object" } }],
"should":[{ "term": { "locale": "fr" } }]
}
},
"size": 1
}
有没有办法让它只回归到en
区域设置的文档,而不是pt
或其他任何文档?
基本上,我想说" 应该是法语,但我也会接受英语。"
答案 0 :(得分:1)
https://github.com/elasticsearch/elasticsearch/pull/6124 https://github.com/elasticsearch/elasticsearch/issues/6299
如果您只需要一个响应或一个已知的小响应集应用逻辑客户端可能是以最少的努力实现这一目标的最简单方法。所以,你做了一个应该" en"," fr"并且如果fr回来则忽略en。
另一种选择是对数据建模,以便进一步对事物进行非规范化。因此,在同一文档中包括slug的所有变体可以简化事情。这可能会增加其他并发症,所以YMMV。