Highlight: маппинг искомых слов к найденным


(Ihor) #1

Доброго времени суток!

У меня есть большой список терминологии, который хочу подсветить в строках, что храняться в Еластике. Поиск с подсветкой работает хорошо, выделяет найденные слова в теги. Проблема что я не знаю какие же слова из всей терминологии были найдены. Но это решается Named Queries

Соответсвенно, я получаю масив matched_queries с словами моей терминологи, что были найдены в строке.
Если в Еластике есть строка "I have one dog and two cats", и терминология "dogs", "cat" и "cow" , то в масиве matched_queries будут слова "dogs" и "cat". Так я узнаю, что терма cow в моей строке нет.

Но я хочу также узнать, что моему терму dogs соответсвует найденое в строке "dog", а cat - "cats".
Тоесть маппинг:

dogs -> dog
cat -> cats

Наведу еще 1 пример.
Строка "deep and deeps". Терминология "deep" и "and"(не самая лучшая, но для примера сойдет). Хочу результат:

deep -> deep
and -> and
deep -> deeps

Как можно решить такую проблему?

Спасибо.


(Igor Motov) #2

Простого способа придумать не могу. А что вы потом с этим будете делать? Какую проблему вы пытаетесь этим решить?


(Ihor) #3

Делаю веб преложение. Вывожу текст для пользователя и хочу выделить слова, что являються терминологией. При ховере на ети слова показываеться описание и ещё необходимая мета информация.
Соответсвенно я должен знать от какого терма исходит выделеное слово.
Тоесть для строки "I have one dog and two cats" у которого есть термЬІ "dogs", "cat", я должен знать что при ховере на "dog" должна показаться необходимая инфа, что соответсвует терму "dogs".


(Igor Motov) #4

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


(system) #5