电商中怎么做类似模糊搜索的功能?
请问一下在电商中实现类似模糊搜索的功能,比如 搜"特斯邦威" 可以搜索出 美特使邦威相关商品?京东和苏宁都实现了类似问题?请大神指教,有什么好的策略
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
请问一下在电商中实现类似模糊搜索的功能,比如 搜"特斯邦威" 可以搜索出 美特使邦威相关商品?京东和苏宁都实现了类似问题?请大神指教,有什么好的策略
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(17)
回复
分词怎么控制粒度,现在我们把名牌当做一个词,但是用户搜索只输入部分品牌名,现在想搜索出来结果,由于分词没有部分品牌的名字的词所以不能命中
用搜索引擎的组件;java的话可以选择用elastic-search
用solr 服务,如果闲麻烦 可以用lucene 包 建立索引,检索
solr
回复
@Minho : 分词怎么控制粒度,现在我们把名牌当做一个词,但是用户搜索只输入部分品牌名,现在想搜索出来结果,由于分词没有部分品牌的名字的词所以不能命中
这属于搜索引擎相关知识了。
#ftserver# 无需分词,新品牌上线不需要重做词库,
只输入部分词也可以搜索
回复
@web4j : 分词怎么控制粒度,现在我们把名牌当做一个词,但是用户搜索只输入部分品牌名,现在想搜索出来结果,由于分词库没有部分品牌的名字的词所以不能命中
用的技术:分词+搜索引擎。
回复
@Feng_Yu : 就是啊 ,分词怎么控制粒度,现在我们把名牌当做一个词,但是用户搜索只输入部分品牌名,现在想搜索出来结果,由于分词没有部分品牌的名字的词所以不能命中
这就是分词的功能啊
用solr吧。。。结合IK分词,查询速度很快的,不要直接查库
回复
@eechen : 对,现在就是设计到怎么扩充词库,我们对一个品牌本来是应该切成一个词的,但是由于用户习惯他只输入部分词,现在想把这些只输入部分词query召回想要的结果,做到类似模糊搜索的功能,有没有什么好的策略来扩充词库
回复
我上面提供的分词算法不依赖词典,只要原文出现有用户输入的词,都能匹配到.代价是分词字数约为原文字数的2倍.所以个人觉得用来匹配标题等简短的内容比较合适.
不错
不错哦
比如插入一条数据时:
"美特斯邦威"会被分词为:
美特 特斯 斯邦 邦威
并存储到一个支持全文索引的字段里.
用户输入的"特斯邦威"会被分词为:
特斯 斯邦 邦威
然后使用全文检索:
MySQL:
SELECT docid, content FROM post_fts
WHERE MATCH(content) AGAINST('+特斯 +斯邦 +邦威' IN BOOLEAN MODE);
SQLite:
SELECT docid, content FROM post_fts
WHERE post_fts MATCH '特斯 斯邦 邦威';
分词表post_fts里的docid对应数据表post里的id.
不依赖词典的中文分词算法如下:
原文字数为n,分词后的字数为2n-2,分词字数约为原文字数的2倍.