Эластичный поиск - найдите строку с соответствующим словом в абзаце - PullRequest
0 голосов
/ 09 октября 2019

В нашем приложении мы используем ElasticSearch в качестве поисковой системы. Он работает на отлично, и большинство наших данных представляют собой текстовые абзацы. Мы также можем одинаково хорошо выделять ключевые слова в результатах поиска.

На нашей веб-странице мы можем показывать только первые 1000 символов совпадающих результатов, поэтому мы обрезаем данные после 1000 символов.

Теперь проблема в том, что для некоторых результатов выделение ключевого слова не отображается, поскольку оно переходит в длинный текст и обрезается.

Поэтому мой вопрос: предоставляет ли ES какую-либо опцию, в которой он сообщает нам индекссоответствия ключевых слов для каждого результата поиска? любой другой обходной путь или альтернатива?

Дайте мне знать, если нужно больше информации.

1 Ответ

0 голосов
/ 10 октября 2019

В упругом поиске нет API, который дает индекс совпадений слов. * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

. *

На нем есть обсуждение ссылка для дальнейшей справки

Пример запроса по ссылке выше обсуждения

{
    "_source": ["content"],
    "query" : {
        "match_phrase" : { "content" : "test keyword" }
    },
    "highlight" : {
        "pre_tags" : ["<b>"],
        "post_tags" : ["</b>"],
        "fields" : {
            "content" : {
                "fragment_size" : 30, 
                "number_of_fragments" : 10, 
                "type": "experimental",
                "options": {"return_offsets": true}
            }
        },
        "order" : "score"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...