You are here

使用搜索HTML索引器

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-08-20 14:52

到目前为止,我们通过提供一个简单的hook_search('search')实现,检查了如何与默认搜索表单进行交互。然而,当我们的需求从使用简单的LIKE语句搜索数据库的一个VARCHAR列,提高到了索引网站内容,那么我们需要将该任务外包给Drupal内置的HTML索引器。

    索引器的目标是高效的搜索大块的HTML。在cron运行时(通过http://example.com/cron.php),通过对内容进行处理来实现这一点。因此,从新内容被提交,也就是新内容可被搜索到了,到下次的cron运行之间,会有一个延时。索引器解析数据并把文本切分成词语 (称为分词),基于一个规则集为每个令牌(token)分配一个分数,我们可以使用搜索API来扩展这一规则集。它接着将这些数据保存到数据库中,而当一个搜索被请求时,它没有直接使用节点表,而是使用了这些存储索引数据的表。
 
注意 由于搜索和索引的执行需要使用cron,从新内容被提交,也就是新内容可被搜索到了,到下次的cron运行之间,会有一个延时。还有,索引是个耗费资源的任务。如果你的Drupal站点非常繁忙,在两次cron运行之间会新增数百个节点,那么最好可以使用一个更高级的能与Drupal一同工作的搜索解决方案,比如Solr。(参看http://drupal.org/project/apachesolr。)
 

老葛的Drupal培训班 Think in Drupal

Drupal版本: