要使用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目录即可
。