Все поля состоят из нескольких полей, где основное поле ТЕКСТА и КЛЮЧЕВОГО СЛОВА имеет суффикс «ке». А нормализатор нижнего регистра реализован для типа поля KEYWORD.
Теперь требуется предоставить функцию поиска по «nm». Если пользователь выполняет поиск в текстовой строке, то точные слова в строке должны иметь приоритет и отображаться первыми. Набор результатов также должен содержать данные для слов, в которых любое слово из строки поиска доступно, даже если оно частично.
Пример:
Набор данных:
- Привет, я Ришаб Кабра
- Ух ты! Я использую Elasticsearch
- Эй... Вы здесь?
- Давайте поработаем над функциональной молодежью
Пример 1:
Строка поиска: вау! Я
Ожидаемый результат: - Ух ты! Я использую Elasticsearch
- Привет, я Ришаб Кабра
- Давайте поработаем над молодежью
2. Он будет иметь второй приоритет, так как имеет частичную точную строку «I am»
3. Наименьший приоритет, но в наборе результатов из-за частичной функциональности слова, поскольку оно содержит букву "i" в строке поиска.
Пример 2:
Строка поиска: Вы
Ожидаемый результат:
- Эй... Вы здесь?
- Давайте поработаем над молодежью
- Будет иметь приоритет, поскольку в нем есть точная строка частичного поиска «ты».
- Появится в результате, так как в нем есть часть слова «ты». "молодежь"
Я пробовал function_score с повышением, но это не работает для специальных символов. Я сделал комбинацию точного поиска слов с подстановочными знаками, которая иногда работает, а иногда нет
Подробнее здесь: https://stackoverflow.com/questions/792 ... ord-search
Мобильная версия