Исключить нижний колонтитул, заголовок и навигацию из индексации Lucene? - PullRequest
1 голос
/ 28 июля 2011

Я работаю над старым, большим сайтом, созданным давным-давно другим разработчиком. Он использовал Lucene в качестве движка для поиска по сайту, индексируя все страницы в их полной HTML-форме: (Некоторые части для ясности опущены)

$this->index = Zend_Search_Lucene::open($path);
$html = file_get_contents($document["path"]);
$doc = Zend_Search_Lucene_Document_Html::loadHTML($html);
$doc->addField(Zend_Search_Lucene_Field::Text('url', $document["path"]));
$this->index->addDocument($doc);

Проблема в том, что навигация сайта, нижний колонтитул и верхний колонтитул также индексируются - поиск «copyright» возвращает каждую страницу.

Есть ли какой-нибудь переключатель, который я мог бы щелкнуть при индексации полного HTML-контента? У меня нет опыта работы с Lucene, но индексирование всей страницы кажется довольно бесполезным, если нет способа исключить элементы, присутствующие на каждой странице. Или мне просто переписать результаты поиска, чтобы просто проиндексировать контент из базы данных, вместо того, чтобы циклически пересылать его по HTTP?

1 Ответ

1 голос
/ 29 июля 2011

Обращаясь к Изучите механизм индексации Lucene , я бы сказал, что было бы разумно просто хранить текстовую информацию в Lucene, а не во всем HTML.

Если у вас есть прямой доступ к базе данных, сохранение данных столбца в виде «Поля» обеспечит вам очень точный контроль над поиском (например, выполнение логических и интервальных запросов в этих полях).

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