Я использую последнюю версию Elastic Search (7.9) и пытаюсь найти хороший способ выполнить запрос с несколькими терминами как AND.
По сути, я хочу:
select * where field1 === 'word' AND field2 === 'different word'
В настоящее время я использую термин для точного соответствия ключевого слова в поле field1. Но добавление во второе поле вызывает у меня некоторую дрожь.
{
"query": {
"term": {
"field1": {
"value": "word"
}
}
}
}
Это мой текущий запрос, я пробовал использовать BOOL. Я встречал ответы в предыдущих версиях, где я мог бы использовать отфильтрованный запрос. Но я тоже не могу заставить это работать.
Может кто-то помочь мне, пожалуйста. Это действительно меня заводит.
РЕДАКТИРОВАТЬ
Вот что я пробовал с bool / must с несколькими терминами. Но я не получаю результатов, хотя знаю, что в этом случае этот запрос должен возвращать данные.
{
"query": {
"bool": {
"must": [
{
"term": {
"field1": {
"value": "word"
}
}
},
{
"term": {
"field2": {
"value": "other word"
}
}
}
]
}
}
}