У меня есть следующие данные в упругом поиске:
[
{
"firstName": "John",
"lastName": "Doe",
"id": 10
},
{
"firstName": "Mary",
"lastName": "Jane",
"id": 10
},
{
"firstName": "John",
"lastName": "Lennon",
"id": 12
}
]
Я хочу написать упругий поисковый запрос, который может соответствовать по firstName или lastName (must), а затем отфильтровать результаты с помощью идентификатора.
текущий запрос, который я написал, выглядит следующим образом:
{
"query": {
"bool": {
"filter": [{
"term": {
"id": 10
}
}],
"should": [{
"match": {
"firstName": "john"
}
}, {
"match": {
"lastName": "john"
}
}]
}
}
}
я понимаю, что когда я выполняю вышеуказанный запрос, я должен получить только запись, имя которой firstName равно "John" иid 10. Но на самом деле я получаю несколько записей.
Что я здесь не так делаю?Любая помощь будет оценена!