我有一个名为products_list
的SQL表,其中包含产品的详细信息,我可以在此列出两个非常重要的字段,根据这些字段我需要整合INTELLECT SEARCH RESULT。
product_id
product_title
中的内容示例
Lenovo K3 Note
Lenovo ZUK
Apple Iphone 6s
联想A6000
等等。
我需要什么?
如果用户输入lenov
,则应以'lenovo k3 Note, lenovo zuk, lenovo a6000'
如果用户输入le
,则应以'lenovo k3 Note, lenovo zuk, lenovo a6000, apple iphone 6s'
如果用户输入6 iphon
,则应以'apple iphone 6s'
注意:非常重要的是,我需要首先列出最匹配的产品,例如,如果用户输入
lenov zu
,结果应排序最匹配 字符串在这里像'lenovo zuk 第一, lenovo a6000和lenovo k3 以任何顺序 '
我尝试了什么?
我尝试使用'like'
,它几乎可以使用,但无法按最匹配的字符串排序。
select * from product_list where product_title like '%$searchString%' order by product_title asc
我尝试使用'MATCH AGAINST'
逻辑,这种方法有效,但未能再次排序。
select *, MATCH(product_title) AGAINST ('$searchString*') AS RELEVANCE from product_list where MATCH(product_title) AGAINST ('$searchString*' IN BOOLEAN MODE) order by RELEVANCE DESC
RELEVANCE
始终为0
注意:我已将
MyISAM
用作存储引擎,并将FULLTEXT INDEX
添加到字段product_title