Need a better way to go about this FULLTEXT search query

I am currently busy creating a search function that queries a user input string against certain row in a mysql table.

This is what the code looks like so far:

$space_separated = implode(" ", $keywords_array);

$dataQuery = "SELECT id, `desc`, price1, pack, measure, quantity
              FROM products
              WHERE MATCH (`desc`)
              AGAINST ('".$space_separated."' IN BOOLEAN MODE)";

It is not quite providing the desired functionality. I am aware that in boolean mode, i forfeight the use of scoring. But my problem is that this code does return partial matches on any set word.

An example of this would be if a user was searching for "chocolate" and they searched "olate", no match will be returned. How would I work around this?

@Mark

Were you suggesting this?

$dataQuery = "SELECT id, `desc`, price1, pack, measure, quantity
              FROM products
              WHERE MATCH (`desc`)
              AGAINST ('".$space_separated."' IN BOOLEAN MODE)
              OR MATCH (`desc`)
              AGAINST ('".$space_separated."')";

FULLTEXT searched for whole words only. You can specify a wildcard * behind a part of the word, but not before. So choco* will match chocolate', but *olate` will not.

Also, default matching uses or for comparison. If you want to match all keywords, add a + before each keyword.

链接地址: http://www.djcxy.com/p/75318.html

上一篇: MySQL全文自动完成搜索问题

下一篇: 需要一个更好的方式去关于这个FULLTEXT搜索查询