可以在codeigniter中搜索多个单词吗?

时间:2012-07-19 22:20:10

标签: php mysql codeigniter

我第一次愿意添加多个搜索。我不确定应该怎么做。我应该在搜索中使用循环每个单词吗?或者是否有任何内置函数的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%');

}

请建议。

谢谢

3 个答案:

答案 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自然语言搜索。

http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html