# Настройка поиска по раскладке и подстроке

**URL:** https://discuss.elastic.co/t/topic/294941
**Category:** Вопросы на русском языке
**Created:** [January 20, 2022, 11:06am UTC](https://discuss.elastic.co/t/topic/294941 "2022-01-20T11:06:49Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Evgeny\_Kolonchuk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/evgeny_kolonchuk/32/100611_2.png) [@Evgeny\_Kolonchuk](https://discuss.elastic.co/u/Evgeny_Kolonchuk)
#### Post date: [January 20, 2022, 11:06am UTC](https://discuss.elastic.co/t/topic/294941/1 "2022-01-20T11:06:49Z")

</div>

Доброго времени суток всем. Возникла задача хранения данных товаров и поиска по ним. Собственно помощь нужна в том как хранить и как сделать запрос.  
Пример такой: есть поле у товара search, оно набивается различным контентом, таким, как например, название товара, артикул, код товара, допустим еще какие то параметры типа мощности и прочего. т.е. это именно сборное поле, где через пробел складываются значения, по которым должен осуществляться поиск. Далее сам поиск - его нужно сделать, чтоб он начинал работать с первого введенного пользователем символа. Понятно, что это будет просто свалка (алгоритм запросов и выдачи можно будет потом подправить настройкой работы фронтенда, делать запрос, например, с 3-го символа и т.д.). При этом поиск должен понимать непереключенную раскладку. т.е. слово "Светильник" должен найти по символам "cdtnbkmybr". Заранее благодарен за ответы. Если есть ссылка на решенную проблему или на документацию, где это можно почитать, буду очень признателен!

---

<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: [January 26, 2022, 6:17pm UTC](https://discuss.elastic.co/t/topic/294941/2 "2022-01-26T18:17:16Z")

</div>

> [@Evgeny\_Kolonchuk](#):
>
> его нужно сделать, чтоб он начинал работать с первого введенного пользователем символа

> **[Edge n-gram token filter | Elasticsearch Guide \[7.16\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/7.16/analysis-edgengram-tokenfilter.html)**

> [@Evgeny\_Kolonchuk](#):
>
> ри этом поиск должен понимать непереключенную раскладку. т.е. слово "Светильник" должен найти по символам "cdtnbkmybr".

> **[ICU Transform Token Filter | Elasticsearch Plugins and Integrations \[7.16\] |...](https://www.elastic.co/guide/en/elasticsearch/plugins/7.16/analysis-icu-transform.html)**

---

<div class="post-metadata">

### Author: ![Evgeny\_Kolonchuk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/evgeny_kolonchuk/32/100611_2.png) [@Evgeny\_Kolonchuk](https://discuss.elastic.co/u/Evgeny_Kolonchuk)
#### Post date: [January 27, 2022, 5:10am UTC](https://discuss.elastic.co/t/topic/294941/3 "2022-01-27T05:10:38Z")

</div>

Спасибо за ответ. По первой статьте, насколько я понял, поиск будет осуществляться или по началу слова или по его окончанию. И только в тех ngram, на которые ты разобьешь слово. И по середине слова поиск осуществляться не будет. Так же еще вопрос и по поиску всего слова. Если ngram ограничены значением 5, то слово из 10 букв уже не попадает под критерии поиска. Поправьте меня, если я не прав. А если прав, то в каком направлении дальше двигаться?

---

<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: [February 24, 2022, 5:11am UTC](https://discuss.elastic.co/t/topic/294941/4 "2022-02-24T05:11:16Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
