Какая польза от Field.Set OmitNorms (true); в люцене - PullRequest
8 голосов
/ 27 августа 2009

Мне предложили использовать Field.Set OmitNorms (true); при создании документов для lucenesearch для сортировки результата по количеству обращений, но мне не ясно, что он делает, и безопасно ли это.

сортировка результата по количеству совпадений означает, что документ, в котором найден текст поиска максимальное количество раз, должен идти вверху, а затем с меньшим количеством совпадений для текста поиска.

Я знаю, что это глупо, но я хочу знать, прежде чем реализовать это, пожалуйста, помогите.

Ответы [ 2 ]

10 голосов
/ 28 августа 2009

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

6 голосов
/ 08 ноября 2012

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

Повышения задаются при индексации, тогда как lengthNorm рассчитывается таким образом, чтобы, если два документа соответствовали условию запроса f раз, более длинный документ получит меньшую оценку.

Таким образом, если вы хотите, чтобы ваши документы оценивались на основе точного числа сопоставленных терминов, а не количества терминов, пропорциональных длине документа, используйте omitNorms (и получите преимущества использования памяти бесплатно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...