Сложный запрос ElasticSearch с приоритетом и частичным поиском словJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сложный запрос ElasticSearch с приоритетом и частичным поиском слов

Сообщение Anonymous »

Предположим, у меня есть имя поля «id», «nm», «limit», «description», «la»
Все поля состоят из нескольких полей, где основное поле ТЕКСТА и КЛЮЧЕВОГО СЛОВА имеет суффикс «ке». А нормализатор нижнего регистра реализован для типа поля KEYWORD.
Теперь требуется предоставить функцию поиска по «nm». Если пользователь выполняет поиск в текстовой строке, то точные слова в строке должны иметь приоритет и отображаться первыми. Набор результатов также должен содержать данные для слов, в которых любое слово из строки поиска доступно, даже если оно частично.
Пример:
Набор данных:
  • Привет, я Ришаб Кабра
  • Ух ты! Я использую Elasticsearch
  • Эй... Вы здесь?
  • Давайте поработаем над функциональной молодежью

    Пример 1:
    Строка поиска: вау! Я
    Ожидаемый результат:
  • Ух ты! Я использую Elasticsearch
  • Привет, я Ришаб Кабра
  • Давайте поработаем над молодежью
Объяснение: 1. Будет иметь приоритет, поскольку имеет точную строку поиска «вау! Я»
2. Он будет иметь второй приоритет, так как имеет частичную точную строку «I am»
3. Наименьший приоритет, но в наборе результатов из-за частичной функциональности слова, поскольку оно содержит букву "i" в строке поиска.
Пример 2:
Строка поиска: Вы
Ожидаемый результат:
  • Эй... Вы здесь?
  • Давайте поработаем над молодежью
Объяснение:
  • Будет иметь приоритет, поскольку в нем есть точная строка частичного поиска «ты».
  • Появится в результате, так как в нем есть часть слова «ты». "молодежь"
Мне нужен эластичный запрос для этого требования.
Я пробовал function_score с повышением, но это не работает для специальных символов. Я сделал комбинацию точного поиска слов с подстановочными знаками, которая иногда работает, а иногда нет

Подробнее здесь: https://stackoverflow.com/questions/792 ... ord-search
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»