Я хочу, чтобы запросить все документы, которые соответствуют любым из следующих значений:Elasticsearch, соответствовать любому возможному точному значению массива в массиве
["Test","Cat","Dog"]
в категории мест.
У меня есть следующее отображение:
"categories": {
"type": "string"
}
Несколько образцов документов являются
"categories": [
"Test",
"Cat"
]
Или
"categories": [
"Blue Cat",
"Ball"
]
я смог вытащить его с помощью следующего запроса:
query: {
match: {
categories: {
query: ["Test","Cat","Dog"]
}
}
Но это вернет мне обе документы, потому что они оба включают в себя «Cat», даже если один из них включает его в виде «Blue Cat», как я могу указать, что я хочу, чтобы точное значение «Cat» не было включает его?
Я читал об изменении типа поля при сопоставлении с вложенным, но массив не принимается как вложенный объект, так как он не имеет ключей и значений.
Если я использую это отображение:
"categories": {
"type": "nested"
}
Я получаю эту ошибку:
"object mapping for [categories] tried to parse field [null] as object, but found a concrete value"
Как можно отфильтровать по категориям поля, используя массив возможных значений и убедившись, что он соответствует по крайней мере, одно из значений точно?