У меня есть документы, которые выглядят как:Elasticsearch свойство массив должен содержать данный элементы массива
{
"tags" => [
"tag1",
"tag2",
],
"name" => "Example 1"
}
{
"tags" => [
"tag1",
"tag3",
"tag4"
],
"name" => "Example 2"
}
Что теперь я хочу, чтобы сделать поиск терминов, где данный массив может выглядеть следующим образом:
[tag1, tag3]
где ожидается, попадание должно быть:
{
"tags" => [
"tag1",
"tag3",
"tag4"
],
"name" => "Example 2"
}
Однако, когда я делаю запрос типа:
GET _search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"terms": {
"tags": [
"tag1",
"tag3"
]
}
}
]
}
}
}
}
}
Я получаю как «пример 1», так и «пример 2» как удары, так как оба примера 1 и пример 2 содержат либо tag1, либо tag3. Посмотрев документацию на термины, я понял, что на самом деле термины содержат запрос.
Как я могу в этом случае убедиться, что пример 2 является единственным ударом при запросе с tag1 и tag3?
Вы должны с минимальным уровнем избыточности отдельных 2-х элементов, или документами с этим точным массивом? – Slam