Почему RedisSearch пропускает документы в результатах при запросе с префиксом в поле тега?

В Redis у меня есть полнотекстовый индекс документов JSON с полем lemma_exact. Он привязан к массиву строк в базовом документе JSON.

Я могу найти определенную статью по индексу с помощью следующего запроса:

(@lemma_exact:{viking})

Это возвращает статью, которую я ищу. Однако, если я использую этот запрос:

(@lemma_exact:{*ing})

Я получаю статьи, в которых индексированное поле содержит значение, оканчивающееся на -ing. Это то, чего я хочу. Однако он включает не все статьи — в частности, как в этом примере, не ту, где поле «викинг».

Что здесь может быть не так?

Вещи, которые я уже проверил:

  • Стоп-слова в индексе отключены (установлены в пустой список).
  • В документе JSON не было ошибок при индексировании.
  • Диапазон, к которому я перешел FT.SEARCH, был достаточно большим, чтобы вместить все результаты.
  • Я увеличил таймаут на FT.SEARCH до 10 000, но это ничего не изменило.
Создание Twitter-подобного приложения Trending Topics App с Redis (на примере PHP)
Создание Twitter-подобного приложения Trending Topics App с Redis (на примере PHP)
Redis - это популярная база данных типа "ключ-значение" в памяти с поддержкой различных типов и структур данных, которая в основном используется для...
0
0
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Тайм-аут здесь тоже был моей первой мыслью, так что вы правильно об этом думаете. Вы всегда можете установить для поведения ON_TIMEOUT значение FAIL, чтобы убедиться, что тайм-аут не истек. Но 10 секунд — это вечность в терминах Redis, поэтому я сомневаюсь, что так и будет.

Однако, возможно, стоит поиграть с настройкой MAXPREFIXEXPANSIONS. Увеличение этого значения является компромиссом с производительностью, но я уже сталкивался с подобными проблемами, когда префикс или суффикс встречаются особенно часто. И -ing, безусловно, распространено.

Спасибо! Это действительно было MAXPREFIXEXPANSIONS. Установка значения 100 000 сработала, и я получил тысячи результатов, которые ожидал.

Adaline Simonian 15.04.2024 21:32

Другие вопросы по теме