- Я пытаюсь написать запрос, который будет соответствовать несколько имен, The ниже запроса это хорошо, но это не точно совпадающее, например, это также дает результаты с именем «XA» или 'BY', где я хочу, чтобы имя было точным A или точным B.Can, кто-нибудь сказал мне, что я делаю неправильно.
является также возможным, чтобы соответствовать нескольким полям, как Name = A или Фамилия = A или Name = б или фамилия = ЬBOOL фильтр Elasticsearch с оператором И
{ "filter": { "bool": { "should": [ { "term": { "Name": "A" } },{ "term": { "Name": "B" } } ] } },"sort": [ { "Pub": { "Rank": "desc" } } ] }
ответ
В логическом запросе must
означает, что все запросы должны оценить true (это похоже на логическое И), а should
означает, что хотя бы один должен оценивать значение true (так же, как логическое ИЛИ).
Чтобы иметь точное совпадение имени, вы должны использовать Keyword analyzer. Это остановит имена, обозначаемые в пробеле, так что «William RIker» будет проиндексирован как (Keyword Analyzer) [«William Riker»] или (анализатор по умолчанию) [«William», «Riker»]. В случае по умолчанию он будет соответствовать термину query либо «William», либо «Riker». В случае с ключевым словом оно будет соответствовать только полному имени.
Чтобы сделать то, что вы хотите, «Name = A или Surname = A или Name = b или Surname = b», тогда вы можете сделать предложения 4.
{ "bool":{ "should":[ { "term":{ "Name":"A" } }, { "term":{ "Name":"B" } }, { "term":{ "Surname":"A" } }, { "term":{ "Surname":"B" } } ] } }
- 1. ElasticSearch BOOL should_not фильтр
- 2. Elasticsearch BOOL фильтр с заводной апи
- 3. Elasticsearch BOOL обратный фильтр результатов запроса
- 4. ElasticSearch с multi_match AND bool
- 5. Elasticsearch function_score с bool
- 6. ElasticSearch Bool фильтр с фразой (вместо одного слова/тега)
- 7. Elasticsearch bool filter и minimum_should_match опция
- 8. Filtered bool vs Bool query: elasticsearch
- 9. Проблем с большим BOOL на elasticsearch
- 10. Запроса с Nest ElasticSearch, имеющими И оператором
- 11. Фильтр с elasticsearch
- 12. Фильтрация по BOOL и has_child с elasticsearch
- 13. Solr фильтр запроса с НЕ и оператором
- 14. SugarCRM 7.6 фильтр с $ и оператором
- 15. Несовместимость между безопасным идентификатором bool и явным оператором bool
- 16. Elasticsearch - Bool фильтр диапазон дат или поле может быть NUL
- 17. elasticsearch BOOL узел с constant_score
- 18. Realm: Фильтр с IN Оператором
- 19. Elasticsearch bool фильтр для нескольких условий для одного элемента массива
- 20. ElasticSearch NEST QueryParsingException bool query не поддерживает фильтр
- 21. Elasticsearch BOOL запрос
- 22. Elasticsearch сложный фильтр
- 23. Фильтр вложенных объектов Elasticsearch
- 24. Джанго фильтр с условием BOOL
- 25. Фильтр в elasticsearch 2.2
- 26. Elasticsearch запрос нескольких типов с разными bool
- 27. Должен ли запрос с оператором «И» в Elasticsearch?
- 28. Elasticsearch и фильтр условий и режим выполнения
- 29. Фильтр условий не работает с bool-запросом
- 30. Elasticsearch postfiler отменить фильтр
Я попробовал запрос с '' должны, но не везло до сих пор все еще не соответствует «Уильям» или «Райкеру» – Ironman
Мой ответ на ваш вопрос часть 1 объясняет, почему. – monkjack
Как обновить отображение имени и сделать его not_analyzed по текущему индексу? – Ironman