Подтвердить что ты не робот

Solr: Каковы преимущества нормализации длины /omitNorms = false?

Мы используем Solr для поиска статей различной длины. Мы индексируем как описательные метаданные (название, автор, категория, ключевые слова и т.д.) И полный текст статьи. Мы не повышаем релевантность по времени индекса - все ускорения выполняются во время запроса (мы используем утилизацию в сочетании с различными повышениями qf, pf и bf).

В настоящее время в нашем поле fulltext используется стандартное значение omitNorms = false; и в результате все остальные равные, более короткие статьи (статьи с 2-3 колонками) будут часто иметь более высокую актуальность, чем более длинные статьи с длинными объектами (многостраничные).

В нашем случае длина статьи является значительным показателем релевантности, поэтому я рассматриваю возможность установки omitNorms = true в нашем поле полного текста.

Вопросы: 1. Почему поведение lucene/solr по умолчанию увеличивает короткие длины полей выше? Что такое рассуждения? 2. Почему я не хочу опускатьNorms? Мне не нужно увеличивать запросы в этом конкретном поле и не использовать какие-либо огранки в этом поле.

4b9b3361

Ответ 1

Вопрос 1:

Увеличение коротких длин полей по более длинным полям связано с фундаментальной концепцией определения релевантности документа TF-IDF (см. http://en.wikipedia.org/wiki/Tf%E2%80%93idf). В качестве краткого примера рассмотрим, что ваш поиск возвращает два документа: первый - 100 слов, а второй - 1000 слов. Каждый из них содержит ключевое слово для поиска только один раз. Поскольку ключевое слово в первом документе составляло 1% текста, считается, что короткий документ более релевантен вашему поиску, чем длинный документ, где ключевое слово, которое вы искали, было всего 0,1% текста.

Вопрос 2:

Похоже, что, основываясь на ваших требованиях, вы можете попробовать отказаться от норм. Однако это может исказить результаты поиска так, как вы этого не ожидаете. Возможно, вы воспользовались некоторыми хорошими свойствами нормализации длины и не осознавали этого. Другой подход может заключаться в том, чтобы фактически хранить длину документа как своего рода поле тега, например, маркировать документы как "короткие", "средние" и "длинные", а затем увеличивать документы, которые соответствуют длине, длине и среднему или тому подобное. Это также даст вашим конечным пользователям возможность фильтровать длину документа при их поиске.

Опять же, когда я упоминаю о хороших свойствах нормализации длины, вы можете подумать о случаях, когда существует очень длинная статья, которая затрагивает 10 различных тем, 1 из которых соответствует поиску пользователя или длинной статье, которая говорит только о 1 теме, который был обыскан. В этом случае вы, вероятно, предпочли бы длинную статью над сверхдолгой статьей (даже если супер длинная статья соответствовала ключевому слову поиска больше раз). Все зависит от ваших данных и ваших случаев использования.