Оптимизация внутреннего поиска по релевантности - PullRequest
0 голосов
/ 19 сентября 2018

Моя команда использует Solr, и у меня есть вопрос по этому поводу.

Существуют некоторые поисковые запросы, которые не дают релевантных результатов или результатов, которые должны были отображаться.Например:

  1. Поиск Macy без апострофов, таких как "Macys", не возвращает никаких результатов для Macy.
  2. Поиск JPMorgan против JP Morgan дает другой результат
  3. При поиске в IBM не отображаются результаты, в которых содержится его полное имя, т. Е. Международный бизнес-компьютер.

Как мы можем улучшить и оптимизировать такие случаи, чтобы они применялись ко всем, даже к тому, который мы не делалине догоняете эти 3 выше?

Есть предложения?

1 Ответ

0 голосов
/ 19 сентября 2018

Все эти проблемы связаны с обработкой входящего текста для этих полей .Вам нужно создать цепочку фильтров для поля - и, возможно, использовать несколько полей для разных вариантов использования и расставить приоритеты для тех, которые используют qf - который обрабатывает входные значения, чтобы сделать то, что вы хотите.

Ваш первый случайможет быть решена с помощью PatternReplaceFilter для удаления любых апострофов - в зависимости от вашего варианта использования и токенизатора вы можете использовать версию CharFilter, так как она обрабатывает текст до его разделения на несколько токенов.

Ваш второй случайпрямой фильтр синонимов или WordDelimiterFilter, в котором вы расширяете JPMorgan до «JP Morgan» или используете WordDelimiterFilter для расширения изменений регистра в отдельные токены.Это также позволит вам искать JP и получать JPMorgan связанных записей.Они могут по-разному влиять на оценку, используйте debugQuery=true, чтобы точно увидеть, как каждый термин в вашем запросе влияет на оценку.

Третий случай, как правило, такой же, как и второй.Вам нужно будет создать приличный список синонимов для используемых терминов, и обычно это то, что вы создаете, когда получаете отзывы от своих пользователей, из существующих словарей и из области знаний.Существует также возможность предварительной обработки текста с использованием NLP, или в этом случае что-то столь же примитивное, как может помочь индексация инициалов любых заглавных слов после друг друга.

...