Производительность Lucene: получить весь документ от Searcher - PullRequest
1 голос
/ 30 апреля 2009

У меня около 10 миллионов объектов, проиндексированных с помощью NIOFSDirectory.

Когда я получаю документы с помощью MatchAllDocsQuery, производительность значительно ниже, чем у других типов запросов, таких как BooleanQuery. Я провел несколько тестов, производительность примерно в 100 раз хуже.

Поскольку в любом случае меня интересуют только первые n документов, есть ли способ получить их из объекта Searcher без использования MatchAllDocsQuery?

Я также рассматриваю возможность использования WildcardQuery со случайным свойством объекта, но Lucene в действии утверждает, что с WildcardQuery связаны "снижения производительности".

Предложения с благодарностью!

1 Ответ

1 голос
/ 01 мая 2009

Как отметил Ювал в комментарии, вы не указали критерии для получения лучших документов. Если вы собираетесь извлекать случайные документы, вы можете просто использовать IndexReader.document () , не проходя поиск вообще. Если у вас есть какие-то критерии, вы можете использовать TermQuery (или запрос, возвращаемый QueryParser).

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