[eluser]pickupman[/eluser]
Here a link for using mysql natural language search.
[url="http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html"]MySQL Docs[/url]. As explained in the article, you need to create a table index on the columns you will be search. MySQL will use the index to create faster results than possibly using LIKE statements. I would run both queries:
Code:
$this->db->or_like('item_name', $keyword);
$this->db->or_like('item_description', $keyword);
$this->db->or_like('item_category', $keyword);
$this->db->get('products');
//vs using something like
$this->db->select('*, MATCH( item_name, item_description, item_category ) AGAINST( '.$keyword.' ) AS relevance');
$this->db->where('relevance >= 0');
$this->db->order_by('relevance', 'DESC');
$this->db->get('products');
Haven't tested but should work. See which one is faster. The second should be if you have created the correct fulltext index.