假设我们在ES Type
中存储了以下3个文档:
文件1:
{
foo: [
"c"
],
bar: "bar1"
}
文件2:
{
foo: [
"a"
"b"
],
bar: "bar2"
}
文件3:
{
foo: [
"a",
"b",
"c"
],
bar: "bar3"
}
我想在ES中进行搜索,以便在给定输入foo: ['a', 'b', 'c', 'd']
的情况下,结果应仅返回文档3.这基本上是说,找到{{{{ 1}}数组。
答案 0 :(得分:1)
你可以使用should和size为1,理想情况下,文档3具有很高的相关性,应该在顶部。和大小1将返回最相关的文档
"size" : 1,
"query": {
"bool": {
"should": [
{ "term": {"foo": "a"}},
{ "term": {"foo": "b"}},
{ "term": {"foo": "c"}},
{ "term": {"foo": "d"}},
]
}