要使用drupal search,首页要到后台模块管理开启search 模块,然后重建索引,运行cron 。
这样就可以使用了 。search 重建索引大概只涉及到core表 。比如 node title node body。
如果想搜索cck 等额外的内容,可以借用其他模块 。比如faceted_search , field_indexer, cck_facets等模块结合 。但是往往依靠模块可能不是很灵活 。这是可以自己根据drupal search 提供的hook,直接来扩展search功能 。扩展search 很重要的hook 。大概就是hook_search
可以自定义搜索项目 。可以查看node 高级搜索,就是扩展search基本的功能而来 。
根据这个hook 。你可以自定义搜索内容,比如搜索users 或者nodes 或者comments都可以 。
具体的搜索形式,你可以根据form api 来扩展。最常用的就是hook_form_alter () 。
也就是所,你可以使用form api 随心所欲的定义搜索表单 。N个搜索表单都可以 。
当然你可以自定义一个form validate 来验证表单数据 。
关键一点就是key values。它的格式是 比如: type:city name:xxx age:23
在验证的使用可以使用 form_set_value 把这些值保存 。hook_search 会自动接收处理
最后的数据都放在do_search 来处理得到结果,然后返回一个search结构数组
想修改搜索结果模板 。可以拷贝 search-result.tpl.php 到自己的theme目录即可 。