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