从Lucene索引中排除页脚,标题和导航?

时间:2011-07-28 13:10:31

标签: php html lucene

我正在开发一个很久以前由另一位开发人员制作的旧的大型网站。他使用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 个答案:

答案 0 :(得分:1)

参考Delve inside the Lucene indexing mechanism,我想说将文本信息存储在lucene而不是整个HTML中是明智的。

如果您具有直接数据库访问权限,则将列数据存储为“字段”将为您提供对搜索的细粒度控制(例如,在这些字段中执行布尔和范围查询)。