5 个回答

php 不是有sphinx和xunsearch吗

这种要么是自己有个搜索部门自己开发,要么就是用现在流行的一些开源搜索引擎,比如solr和elasticsearch

试试elasticsearch搜索引擎,支持分词,全文搜索,还可以更根据相似度排序

我说下我的思路:汉字转拼音后进行全文检索.

// PHP利用ICU扩展intl实现汉字转拼音
echo transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', '德克士'); //de ke shi
echo transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', '得克'); //de ke

// 假设name字段内容为"德克士",则name_fts字段内容为"de ke shi".
// MySQL全文检索字段name_fts中同时包含"得克"关键字de和ke的商店记录.
// 所以 name_fts 中包含de和ke的店铺都能显示出来.
SELECT name FROM store 
WHERE MATCH(name_fts) AGAINST('+de +ke' IN BOOLEAN MODE)
ORDER BY id DESC LIMIT 5;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题