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

**URL:** <https://discuss.elastic.co/t/highlight/64200>\
**Category:** Вопросы на русском языке\
**Created:** [October 27, 2016, 8:27pm UTC](https://discuss.elastic.co/t/highlight/64200 "2016-10-27T20:27:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![generak13](https://avatars.discourse-cdn.com/v4/letter/g/f1d935/32.png) [@generak13](https://discuss.elastic.co/u/generak13)\
**Post date:** [October 27, 2016, 8:27pm UTC](https://discuss.elastic.co/t/highlight/64200/1 "2016-10-27T20:27:44Z")

</div>

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

У меня есть большой список терминологии, который хочу подсветить в строках, что храняться в Еластике. Поиск с подсветкой работает хорошо, выделяет найденные слова в теги. Проблема что я не знаю какие же слова из всей терминологии были найдены. Но это решается [Named Queries](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-named-queries-and-filters.html#search-request-named-queries-and-filters)

Соответсвенно, я получаю масив 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

```

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

Спасибо.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [October 28, 2016, 6:06pm UTC](https://discuss.elastic.co/t/highlight/64200/2 "2016-10-28T18:06:51Z")

</div>

> [@generak13](#):
>
> Но я хочу также узнать, что моему терму dogs соответсвует найденое в строке "dog", а cat - "cats".

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

---

<div class="post-metadata">

**Author:** ![generak13](https://avatars.discourse-cdn.com/v4/letter/g/f1d935/32.png) [@generak13](https://discuss.elastic.co/u/generak13)\
**Post date:** [October 29, 2016, 1:36pm UTC](https://discuss.elastic.co/t/highlight/64200/3 "2016-10-29T13:36:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [October 31, 2016, 8:23pm UTC](https://discuss.elastic.co/t/highlight/64200/4 "2016-10-31T20:23:49Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:44pm UTC](https://discuss.elastic.co/t/highlight/64200/5 "2017-07-06T13:44:32Z")

</div>

Closed on July 6, 2017, 1:44pm UTC


