MySQL 和PostgreSQL都有内置的全文搜索能力。你可以很容易的使用这些数据库特定解决方案来建立一个搜索引擎,但你失去了对搜索机制的控制,同时也不能 让你的搜索系统与你的应用完全匹配。而且有时候数据库认为优先级比较高的词语,而实际上在你的应用中则被认为是“噪音”。
由于数据库全文搜索不能很好的满足应用需求,Drupal社区建立一个定制的搜索引擎,来实现针对Drupal的索引和页面等级算法。结果就建立了与Drupal其他框架部分相一致的搜索引擎,它具有标准的配置和用户接口----不用担心底层使用了什么数据库。
在本章我们讨论了如何使用模块编写搜索API的钩子函数和构建定制的搜索表单。我们还将学习一下Drupal是如何解析和索引内容的,还有就是如何编写索引器的钩子函数。
提示 Drupal能够理解复杂的查询语句,比如包含布尔操作and/or,精确短语,或者甚至可以排除每个词语。这些情况的一个实际例子如下所示: