Почему мы используем фильтры при поиске - PullRequest
1 голос
/ 08 декабря 2010

Я работаю с Lucene. Моя задача - выполнить запрос и выполнить поиск по нему.Я хочу знать, как использовать фильтры.

1 Ответ

3 голосов
/ 08 декабря 2010

Фильтры отличаются от запросов тем, что фильтры могут кэшироваться. В основном, когда вы используете фильтр, Lucene сохраняет растровое изображение, где бит i равен 1, если i-й документ соответствует фильтру, и 0 в противном случае.

Если вы выполните поиск всего, что соответствует запросу и фильтру, он получит результаты запроса и побитовое И с его кэшированным фильтром. Это может улучшить производительность при некоторых обстоятельствах.

По сути, если у вас есть одно или два условия, которые необходимо применять почти к каждому запросу (например, скрыть все документы, которые являются «высоконадежными»), тогда вам может потребоваться поискать фильтры. В противном случае обычные запросы должны работать лучше, поскольку фильтры могут занимать много памяти.

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