我第一次愿意添加多个搜索。我不确定应该怎么做。我应该在搜索中使用循环每个单词吗?或者是否有任何内置函数的mysql?
我在想它应该是那样的?
$strSearch = $this->input->post("search"); // would hold words etc hello word
$arry = explode(" ", $strSearch);
foreach($arry as $item){
$this->db->query("select * from tbl where item like '%$item%');
}
请建议。
谢谢
答案 0 :(得分:1)
要搜索很多内容。
通过你的话语迭代只是战斗的一小部分。有单词顺序(Mac Office与Office Mac),忽略常用单词(a,the),单词变体如复数。不要忘记称量和评分你的搜索。
尝试一个像Zend Search Lucene那样已经完成繁重工作的图书馆。请参阅:http://codeigniter.com/forums/viewthread/207865/或http://www.cmjackson.net/2009/02/17/how-to-use-zend_search_lucene-with-the-php-framework-codeigniter/。
答案 1 :(得分:0)
工作原理
我将这些单词分开并为每个单词循环以创建一个额外的字符串,并通过mysql查询执行该字符串。它正在按我的意愿工作。
$strSearch = $this->input->post("search"); // would hold words etc hello word
$arry = explode(" ", $strSearch);
foreach($arry as $item){
$xQuery .= " or name like '%$item%' or location like '%item'";
}
$this->db->query("select * from tbl where name like '$strSearch' or location like '$strSearch' .$xQuery ");
答案 2 :(得分:0)
您可以查看MySQL自然语言搜索。