У меня проблема с подсветкой в Elastic 2.0 и 2.1 - она возвращает больше информации, чем я думаю.Elastic Search 2.0/2.1 Проблема с подсветкой и запрос Bool
Я строю запрос bool (отфильтровано ключевое слово запроса устарело в 2.0+, поэтому я пытаюсь обновить свой синтаксис). Я создаю раздел должен и раздел в запросе, за которым следует запрос на выделение информации.
В документации говорится, что запрос используется в контексте запроса или контексте фильтра, но маркер не означает такого различия.
Вот мой полностью сформированный запрос:
GET /sample04/_search
{
"query": {
"bool": {
"must": [
{
"query": { "query_string": { "query": "east west" } }
}
],
"filter": [
{
"terms": {"OwnerId": ["1", "2","3"]}
}
]
}
},
"highlight": {
"fields": {
"*": { "require_field_match": "false" }
}
}
}
Так что этот запрос работает, как ожидалось - мы запрашивая точки на восток или запад, и мы фильтрации документов на поле Id, который является частью наших требований безопасности , а затем я прошу выделить информацию.
Недостаток, однако, заключается в том, что информация о подсветке содержит хиты каждого экземпляра каждого значения, которое я представил в своем фильтре (в данном случае 1, 2 или 3), который соответствует любому значению в любом поле в любой части моего документа, например:
"highlight": {
"SomeTextField": [
"North <em>West</em>"
],
"OwnerId": [
"<em>3</em>"
],
"SerialNumber": [
"<em>3</em>-<em>3</em>"
],
"AssociatedValue": [
"<em>3</em>",
"<em>2</em>"
],
"RelatedValue": [
"<em>3</em>",
"<em>3</em>",
"<em>3</em>",
"<em>3</em>",
"<em>3</em>"
]
}
Как получить маркер в соответствии с моим запросом в разделе необходимости, но игнорировать фильтр? Я убежден, что он должен игнорировать выделение совпадений, которые были частью фильтра, особенно когда он выделяет поля, содержащие значения, которые были запрошены для фильтрации СПЕЦИФИЧЕСКОГО ПОЛЯ, но он использует значение в любом месте моего документа. Это как-то кажется неправильным, но, возможно, это мое понимание.
Как FYI, если я установил require_field_match в TRUE, тогда я ТОЛЬКО получаю хиты, соответствующие фильтру, и NONE, которые соответствуют запросу.
Я не могу указать поле для генерации информации выделения, в то время как мы потребляем Elastic как поиск, когда-то находим какую-либо модель, поэтому я не знаю, откуда будет возвращаться мой результат.
Вы видите, что я делаю неправильно? Это было бы оценили, чтобы понять это.
Perfect - спасибо. Именно то, что мне не хватало. – Dexterama
рад, что я могу помочь – ChintanShah25