使用Drupal很多年了,在站内搜索上基本上都是采用了系統自帶的搜索功能,搜索框基本沒變,隻是搜索結果頁通過search-results.tpl.php和search-result.tpl.php進行過一些小的修改。但遇到了數據量巨大、漢字編碼等問題的時候,也在某些情況下采用過其它方式:
- Google Custom Search Engine,這個在國外還可以用,在國内無法使用;
- Apache Solr,需要自建一套搜索功能,比較複雜;
- Drupal Views,可以實現一些組合條件搜索查詢功能。
最近在新建已經完善以前網站的時候,遇到用戶搜索目标比較清晰,我們網站中不一定有正好用戶需要的關鍵詞但有其中截取的一部分的信息,例如電話号碼、IP地址等,如果能用程序做一些判斷就可以讓用戶避免“搜索無結果”的答複,後來試了幾種辦法,可以用程序與Drupal本身的搜索功能結合起來用,給用戶更好的體驗:
- 修改search-results.tpl.php模闆,在正常搜索結果下方添加PHP程序,對搜索詞(從URL獲取)進行提取、分析,給用戶呈現搜索以外的結果或者操作提示;
- 去掉Drupal搜索框block,完全自己新建一個帶form的block,提交到一個專門的URL,在這個URL中用PHP程序對關鍵詞進行提取、判斷,如果符合某些特征就跳轉到相應的功能模塊處理,如果不符合預訂的特征就跳轉到正常搜索頁面URL(www.example.com/search/node/xxx);
- 修改search-block-form.tpl.php模闆,在提交前就按自己的想法修改,類似自建一個帶form的block;
- 在template.php中用YOURTHEME_form_search_block_form_alter來替換系統的搜索框。
前兩種我都試過,後面兩種還沒有試過,但都應該可以使用。
评论2
這個是怎麼配置的呀?
這個是怎麼配置的呀?我知道的都已經寫在上面了啊,要自己一點點去試
我知道的都已經寫在上面了啊,要自己一點點去試