0

複数の検索を追加するのは初めてです。どうすればいいのかわかりません。検索で単語ごとにループを使用する必要がありますか? または、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%');

}

ご意見をお聞かせください。

ありがとうございました

4

3 に答える 3

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 / .

于 2012-07-20T02:26:18.087 に答える
0

MySQLの自然言語検索をご覧ください。

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

于 2012-07-20T22:23:03.847 に答える
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 ");
于 2012-07-20T22:08:02.757 に答える