使用Mysql和PHP进行智能搜索
我有一个名为使用Mysql和PHP进行智能搜索,php,mysql,database,match,Php,Mysql,Database,Match,我有一个名为products\u list的SQL表,其中包含产品的详细信息,我可以在这里列出两个非常重要的字段,在此基础上我需要集成Intelligent搜索结果 产品标识 产品名称 中的内容示例 联想K3纸币 联想祖克 苹果iphone6s 联想A6000 等等 我需要什么? 如果用户输入lenov,结果应为“联想k3笔记本、联想zuk、联想a6000” 如果用户输入le,则结果应为“联想k3笔记本、联想zuk、联想a6000、苹果iphone 6s” 如果用户输入6iphone,结果应该是
products\u list
的SQL表,其中包含产品的详细信息,我可以在这里列出两个非常重要的字段,在此基础上我需要集成Intelligent搜索结果
产品标识
产品名称
lenov
,结果应为“联想k3笔记本、联想zuk、联想a6000”
如果用户输入le
,则结果应为“联想k3笔记本、联想zuk、联想a6000、苹果iphone 6s”
如果用户输入6iphone
,结果应该是“苹果iphone6s”
注意:非常重要的是,我需要首先列出最匹配的产品,例如,如果用户输入lenov zu
,结果应按最匹配的产品排序
这里的字符串像‘lenovo zukfirst、lenovo a6000和lenovo k3
以任何顺序'
我尝试了什么?
我尝试使用'like'
,它几乎可以工作,但无法使用最匹配的字符串进行排序。
从产品列表中选择*,其中产品名称如“%$searchString%”按产品名称asc排序
我尝试使用'MATCH-on'
逻辑,这很有效,但再次排序失败
select *, MATCH(product_title) AGAINST ('$searchString*') AS RELEVANCE from product_list where MATCH(product_title) AGAINST ('$searchString*' IN BOOLEAN MODE) order by RELEVANCE DESC
相关性
始终为0
注意:我使用了MyISAM
作为存储引擎,并添加了全文
将
索引到字段
产品标题
这是什么意思<代码>此操作有效,但再次排序失败。
匹配
是实现此目的的正确方法如果打印相关
变量以查看标点符号如何给出每个结果,会怎么样?使用全文
键设置的字段是否对我们有用(帮助您),以及它为什么在布尔模式下搜索?变量中的*
是什么<代码>(“$searchString*”)
。我不明白那种说法。我在没有布尔模式和通配符的情况下使用match-on,它一直工作正常。如果删除*
并搜索leno
,它也必须显示lenovo k3