Оригинал на GitHub
Вопрос
Сейчас общий поиск в системе работает по первым символам введенных значений. То есть при вводе "5566" не покажет значения 115566, но покажет "55667" и "55668". Мы столкнулись с кейсом, когда нужно в поиске отображать и данные не сначала строки. Возможно ли включить нестрогий поиск и изменить количество символов для поиска до 4х?
Ответ
MeiliSearch — это поисковая система, основанная на префиксах, и поэтому не может находить части запроса, которые находятся в середине или в конце слова. Относительно поиска части: вы можете при генерации поля ttm_search сгенерировать текст с кусками (если куски известны заранее). То есть, если у вас номер 46027778798 и в нем 4602 это префикс и 777 и 8798 номера документов и поиск нужен именно по номерам.
То в ttm_search вычисляйте полную информацию и отдельно части. Пример кода в поле ttm_search:
= : rowCreate(field: "index" = str`"Number:" ++ $number + "," ++ "Prefix:" ++ $prefix`; field: "title" = #full_number; field: "catalog" = "orders")
number: strPart(str: #full_number; offset: 7)
prefix: strPart(str: #full_number; length: 4)