Индексирование нескольких таблиц в Lucene - PullRequest
1 голос
/ 05 ноября 2008

Я хочу использовать lucene.net для индексирования записей в нашей базе данных. Записи хранятся в нескольких разных таблицах и связаны вместе через таблицу записей. Было бы лучше индексировать каждую таблицу отдельно и связывать результаты поиска вместе в коде, или я должен связать записи вместе, поступающие из базы данных, и поместить их все в один индекс?

Любые другие предложения также будут полезны.

Ответы [ 2 ]

2 голосов
/ 05 ноября 2008

Если вы создадите индекс Lucene, соответствующий каждой таблице, то 1) вам придется выполнить поиск по каждому индексу и 2) каким-то волшебным образом объединить результаты поиска. Lucene уже настроен на поиск документов по нескольким полям (см. MultiFieldQueryParser) и предоставляет вам унифицированный набор результатов.

Даже если после создания индекса вы решите, что время от времени будете искать только на основе данных, полученных из одной таблицы, вы можете просто использовать обычный QueryParser для поиска только соответствующего поля ваших документов.

1 голос
/ 05 ноября 2008

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

...