Фильтры поиска с Lucene.NET - PullRequest
       48

Фильтры поиска с Lucene.NET

2 голосов
/ 22 октября 2009

Я использую Lucene.Net для создания веб-сайта для поиска книг, статей и т. Д., Хранящихся в формате PDF. Мне нужно иметь возможность фильтровать результаты поиска по имени автора, например. Можно ли это сделать только с Lucene? Или мне нужна БД для хранения полей фильтра для каждого документа?

Кроме того, как лучше индексировать мои документы? Для начала у меня будет около 50 документов, и периодически мне придется добавлять в индекс кучу документов - возможно, через веб-форму. Должен ли я использовать БД для хранения путей к документам?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Вот список того, что вам нужно сделать IMO:

  1. Извлечение необработанного текста из PDF - см. этот вопрос , который рекомендует iTextSharp для этой цели.
  2. Для каждого документа PDF создайте документ Lucene.net, который имеет несколько полей: автор, заголовок, текст документа и все, что вы хотите найти. Рекомендуется также иметь уникальное поле идентификатора для каждого документа. Я предлагаю вам также сохранить поле с путем к исходному документу PDF.
  3. После индексации всех документов у вас будет индекс Lucene, который вы можете искать по полям.
  4. Вы можете добавить новые документы, повторив шаг 2. Это проще сделать в автономном режиме - инкрементные обновления сложны.
2 голосов
/ 22 октября 2009

В Lucene есть пара различных анализаторов, которые могут убрать шум и выполнить "остановку", что полезно, когда вы хотите выполнить полнотекстовый поиск, но вам все равно нужно где-то хранить сам PDF. Lucene.Net рада создать индекс для файловой системы, и вы можете добавить поле в создаваемый документ, называемое «PATH», с указанием пути к документу.

...