Выполнение базового запроса к моей базе данных эластичного поиска дает противоречивые результаты.
Я могу сопоставить запрос к БД по идентификатору напрямую
{
"query": {
"bool": {
"must": [
{
"term": {
"id": {
"value": "84e042ce-74e3-4c51-a1d9-db2f1c3d57ef"
}
}
}
]
}
}
}
Возвращает одну запись, как и ожидалось (2показанные поля)
"id": "84e042ce-74e3-4c51-a1d9-db2f1c3d57ef",
"usersNotified": "e721a8d9-8001-4003-9af9-1c7397fd7079,fc18bbc4-f7f1-4151-bf88-390597da9510,061c9195-cb97-4777-8577-a8e555b95c7f,8e4e7641-b135-46e5-b9b4-c42393450108,601785e7-1c18-43b4-924e-cf52a15e3204,ec132f25-3d1d-41d8-ab16-e60a53ee9483"
Когда я добавляю match_phrase в запрос, ищущий Guid, который присутствует в поле "usersNotified", он возвращается пустым.
{
"query": {
"bool": {
"must": [
{
"term": {
"id": {
"value": "84e042ce-74e3-4c51-a1d9-db2f1c3d57ef"
}
}
},
{
"match_phrase": {
"usersNotified": {
"query": "601785e7-1c18-43b4-924e-cf52a15e3204"
}
}
}
]
}
}
}
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 20,
"successful": 20,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
Точно так жезапрос для другой записи (и более короткого списка пользователей с уведомлением) действительно возвращает совпадение
{
"query": {
"bool": {
"must": [
{
"term": {
"id": {
"value": "d48e6ccc-f343-4840-af29-317fef829da1"
}
}
},
{
"match_phrase": {
"usersNotified": {
"query": "601785e7-1c18-43b4-924e-cf52a15e3204"
}
}
}
]
}
}
}
Как показано:
"id": "d48e6ccc-f343-4840-af29-317fef829da1",
"usersNotified": "e721a8d9-8001-4003-9af9-1c7397fd7079,fdc40427-9db0-44d8-8ce3-45c90489dc19,061c9195-cb97-4777-8577-a8e555b95c7f,601785e7-1c18-43b4-924e-cf52a15e3204,ec132f25-3d1d-41d8-ab16-e60a53ee9483"
Так что я не понимаю, почему работает тот же запросв одном сценарии, но не в другом.Любая помощь будет принята с благодарностью.