mysql 多字段多关键词根据匹配度排序查找,2千万数据。如何优化sql
一个商品表goods,大概2千万条数据
goods中有字段shop_name和goods_name
现在有个需求,用户输入搜索关键字进行查找,需要按关键字的相关性或匹配度排序
现在关键字用了hanlp的中文分词进行处理,然后进行查找。
比如:小浣熊婴儿爽身粉 分词处理后为:小浣熊 爽身粉 婴儿
关键词不固定,以用户输入进行分词
现在的sql语句为
select * from goods where concat(shop_name,goods_name) regexp '小浣熊|爽身粉|婴儿'
需要的是:商品标题同时匹配关键字高的在前面,店铺名中包含关键词的也排在前面。这需要如何写sql呢