美团是怎么实现搜索关键词自动匹配功能的?
2020-12-30 11:44:59 阅读(589) 评论(0)
问题背景搜索关键字智能提示是搜索应用程序的标准配置。其主要功能是避免用户输入错误的搜索词,并将用户引导到相应的关键词,以改善用户的搜索体验。美团CRM系统有数百万企业。为了让用户快速找到目标业务,我们在solrcloud的基础上实现了业务搜索模块。用户主要输入商户名和商户地址进行搜索。为了提高用户的搜索体验和输入效率,本文实现了基于solr前缀匹配查询关键字的智能提示(Suggestion)实现。1.支持前缀匹配原则在搜索框中输入“海底”,以海底为前缀,在搜索框下显示“海底捞”、“海底捞火锅”、“海底世界”等搜索词;输入“万达”会提示“万达影城”、“万达广场”、“万达百货公司”和其他搜索词。2.由于汉字和拼音输入的特点,如果搜索自动提示可以支持拼音,它将给用户带来更大的方便,以避免切换输入方法。例如,输入“haidi与输入“海底”提示相同,输入“提示”关键词wanda与输入“万达”提示的关键字相同。3.支持多音字输入提示,如输入“chongqing”或者“zhongqing“重庆火锅”都能提示“重庆火锅”、“重庆烤鱼”、“重庆小天鹅”。4.支持拼音缩写输入。为了提高输入效率,有必要提供拼音缩写输入。例如,输入“hd应该能够提示“”haidi输入“类似关键词”wd“也可以提示“万达”关键词。根据用户的历史搜索行为,根据关键词的热度进行排序。为了提供sugest关键词的准确性,根据用户查询关键词的频率对最终查询结果进行排序,如输入[重庆,chongqing,cq,zhongqing,zq]—>[“重庆火锅”(f1)、“重庆烤鱼”(f2)、“重庆小天鹅”(f3)、>f2>F3。解决方案1。当用户输入前缀时,遇到许多提示候选人时,如何选择,哪些显示在前面,哪些显示在后面?这是一个搜索热的问题。用户使用搜索引擎搜索业务,会输入大量的关键字,每个输入是关键字投票,所以关键字输入越多,相应的查询更受欢迎,所以需要记录查询关键字,统计每个关键字的频率,方便提示结果按频率排序。搜索引擎将通过日志文件记录用户每次搜索使用的所有搜索串,每个查询串的长度为1-255字节。2.汉字拼音用户输入的关键字可能是汉字、数字、英语、拼音、特殊字符等。由于需要实现拼音提示,我们需要将汉字转换为拼音,并考虑在java中使用piny4j组件进行转换。3.考虑到支持拼音缩写的过程。chongqing”,"zhongqing"--->"cq",”zq4.多音字的全排列应支持多音字提示。查询串转换为拼音后,需要实现全排列组合。字符串多音字的全排列算法如下:Javacode将内容复制到剪贴板public static List getPermutationSentence(List> termArrays,int start) { if (CollectionUtils.isEmpty(termArrays)) return Collections.emptyList(); int size = termArrays.size(); if (start < 0 || start >= size) { return Collections.emptyList(); } if (start == size-1) { return termArrays.get(start); } List List1); if (CollectionUtils.isEmpty(strings)) { return permutationSentences; } if (CollectionUtils.isEmpty(permutationSentences)) { return strings; } Listnew ArrayList for (String pre : strings) { for (String suffix : permutationSentences) { result.add(pre suffix); } } return result; } 索引和前缀查询方案 Trie树,TopK算法,即字典树,又称单词搜索树或键树,是一种树形结构,是哈希树的变种。典型的应用程序是用来统计和排序大量的字符串(但不限于字符串),因此搜索引擎系统经常用于文本字频统计。典型的应用程序用于统计和排序大量的字符串(但不限于字符串),因此搜索引擎系统经常用于文本字频统计。其优点是最大限度地减少不必要的字符串比较,查询效率高于哈希表。Trie是一棵存储多个字符串的树。相邻节点之间的边缘代表一个字符,使树的每个分支代表一个子串,而树的叶节点代表一个完整的字符串。与普通树不同的是,相同的字符串前缀共享相同的分支。例如,给出一组单词inn,int,at,age,adv,ant,我们可以得到以下Triee:从上图可以看出,当用户输入前缀i时,搜索框可能会显示以i为前缀的“in”,“inn”,”int"等待关键词,当用户输入前缀a时,搜索框中可能会提示以a为前缀的“ate等待关键词。这样,实现搜索引擎智能提示sugestion的第一步就清楚了,就是用trie树存储大量的字符串,当前缀固定时,存储相对较热的后缀。Topk算法用于解决统计热词的问题。解决TopK问题主要有两种策略:hashMap统计 hashmap统计:先预处理这批海量数据。具体方法是:将Key维护为Query字符串,Value维护为Query出现次数的HashTable,即hash_map(Query,Value),每次读一个Query,如果字串不在Table中,则添加字串,并将Value值设置为1;如果字串在Table中,则可以添加字串的计数,最终在O(N)Hash表完成了时间复杂性的统计。堆排序:借助堆的数据结构,找出TopK,时间复杂度为N‘logK。堆排序:借助堆的数据结构,找出TopK,时间复杂度为N‘logK。也就是说,借助堆结构,我们可以在log量级的时间内找到和调整/移动。因此,维护一个K(题目为10)大小的小根堆,然后通过300万的Query,分别与根元素进行比较。因此,我们最终的时间复杂度是:O(N) N'*O(logK),(N为1000万,N’为300万)。该方案的问题是:在构建索引和查询时,汉字应转换为拼音。查询完成后,拼音应转换为汉字显示,并考虑数字和特殊字符。两棵Trie树需要保持拼音和缩写。作为一个应用广泛的搜索引擎系统,Sugest智能提示Solr内置了智能提示功能,称为Sugest模块。该模块可以根据提示词文本选择智能提示,并支持通过建立索引词库来提示索引的某个字段。(详见solrwiki页面htp://wiki.apache.org/solr/Suggester)该方案的问题是,返回的结果是根据索引中字段的词频进行排序,而不是用户搜索关键字的频率,因此一些流行关键字不能排在前面。拼音提示,多音字,缩写或添加索引字段。方案3Solrcloud建立单独的collection,使用solr前缀查询实现上述问题。上述两个方案在实施过程中都存在一些问题 在处理汉字suggest时,Topk算法并不十分优雅,需要维护两棵Trie树,实施起来很复杂;Solr自带的sugest智能提示组件的问题是使用freq排序算法。返回结果完全基于索引中字符的出现次数,不考虑用户搜索单词的频率。因此,一些流行词不能排在更高的位置。因此,我们继续寻找更优雅的解决方案。因此,我们继续寻找一个更优雅的解决方案来解决这个问题。到目前为止,我们考虑为关键字建立索引collection,并使用solr前缀查询。copyField在solr中可以很好地解决我们同时索引多个字段(汉字,pinyin,abbre)当field的multivalued属性设置为true时,可以解决同一关键字的多音字组合问题。配置如下:schema.xml:XML/HTMLCode复制内容到剪贴板<field name="kw" type="string" indexed="true" stored="true" /><field name="pinyin" type="string" indexed="true" stored="false" multiValued="true"/><field name="abbre" type="string" indexed="true" stored="false" multiValued="true"/><field name="kwfreq" type="int" indexed="true" stored="true" /><field
推荐阅读
- B2B2C商城系统运营过程中应注意哪些细节
个体或者小企业在天猫、京东等电商平台开店是一种趋势,但是对中大型企业来说,只是在第三方平台开个小店铺,未免有庙小神仙大的尴尬。所以,越来越多大中型传统企业开始搭建属于自己的独立商城系统,有的还是B2B2C多用户商城系统。但是说到运营,很多企…查看详情
- 中文乱码的产生原因 中文乱码出现的原因
相信大家在很多的场合都遇到了乱码的现象,其实这个是很常见的现象,但是很多的朋友都不是很熟悉,下面*就给大家来详细介绍一下中文乱码的产生原因 中文乱码出线的原因这一块的内容,希望能帮助到大家。 什么是乱码 乱码,指的是由于本地计算…查看详情
- 在开发微信小程序后台前要做好哪些准备工作呢?这几点不能忽视
相信大家在日常的生活中已经习惯了使用微信,而的确通过这个平台,也给大家的日常生活带来了很多的便捷,现在已经有很多的商家,都开始选择使用微信小程序,来推广商各平台有,功能方面也很强大,还有广阔的市场前景,所以做微信小程序后台的开发…查看详情
- 关于收费杀毒软件排名榜的详细介绍
现如今市面上杀毒软件还是蛮多的,但是不知道是否靠谱,所以最好是要选择收费杀毒软件,但是收费杀毒软件也比较鱼龙混杂,具体要选择哪一个可以查看以下的收费杀毒软件排名榜。 1、迈克菲 迈克菲能够为全球的系统和用户都提供安全网络保…查看详情
- 文档管理软件 文档软件哪个好用
目前市场上可选择的在线文档管理软件非常多,极大地提升了跨团队、远程团队的协作效率。下面万商云集*就给大家介绍下文档管理软件的相关内容,希望能帮助到大家,满足团队文档的存储需求,同时要保证存储安全; 文档管理,团队文档杂多,是否支持多级…查看详情
- 专利转让的税费怎么计算 专利转让的税费计算方法
个人专利转让可国家和法律允许的,可以自由转让,不受他人或单位的限制。但是转让个人专利产生的个人收入是需要缴纳税费的,下面*就给大家来详细介绍一下专利转让的税费怎么计算 专利转让的税费计算方法这一块的相关内容,希望能帮助到大家。 …查看详情
- 进销存管理软件有哪些?好用的软件介绍
一家企业的发展其实也是很重要的,在生产管理的过程当中,应该要选择一些比较好的软件来使用,比如说想要对产品进行更好的管理,那么就可以选择进销存软件。有了这些软件之后,对于产品的出库以及入库和销售情况也都能够了解的更加清楚。那么进销…查看详情
- 不知道美发店收银系统软件免费有哪些?看这篇文章!
由于大数据和云储存的技术不断进步,众多行业都开始使用智能系统,美发行业从点餐到收银都开始进去机器智能时代。美发店通过使用收银系统软件既可以提高工作效率,又可以降低人员雇佣的成本,从而增加收益。下面*会大家盘点几个免费的美发店收银系统软件: …查看详情
- *编辑图片的软件(*修图改尺寸大小)
现在很多人都会拍一些照片,大多数人因为想让图片看起来更加精致有氛围感,会选择一些图片编辑软件来美化图片,虽然相册有简单的编辑图片功能,但却不能满足需求,操作繁杂的P图软件还需要下载,很麻烦,为此小万给大家推荐几款能*修图改尺寸的编辑图片软件…查看详情
- 字幕转语音软件-文字转语音*发声
随着网络的普及,大家都会在休闲的时间看一些影视作品或者是一些短视频来放松,很多时候都会遇到自己喜欢的台词想记录下来,那么这就需要字幕转语音软件啦,以下是我给大家推荐的字幕转语音的软件。一、万兴喵影万兴喵影是一款视频剪辑软件,这款软件可以说是…查看详情
- 生态圈布局大潮,加盟小程序创业项目靠谱吗?
移动互联网市场流量被几个超级APP瓜分,百度、腾讯、阿里等流量巨头都在搭建自己的小程序生态圈,力推自己小程序,掀起一阵互联网大潮。部分创业者,在这场大潮中看到了小程序的商业价值和发展空间,想选择技术和资金要求比较低的创业方式,加盟小程序。那…查看详情
- 常用的国外聊天软件有哪些 国外聊天软件排行榜
相信大家平时都会使用到聊天软件,不同的国家地区使用的聊天软件还是有一定的差别的,下面*就给大家来详细介绍一下常用的国外聊天软件有哪些 国外聊天软件排行榜这一块的相关内容,希望能帮助到大家。 国外聊天软件排行榜 01Faceboo…查看详情
- 小程序免费吗
微信小程序申请需要费用吗? 1.申请小程序:300元(如果有已经认证过的公众号就可以免费申请)2.小程序开发:一般1000到几万不等、看具体要求。其实小程序开发价格主要取决于你要做多少页面和要做的页面和功能的复杂程度。如果是行业内比较…查看详情
- 新工艺能不能申请专利权?
授予专利权的发明和实用新型,应当具备新颖性、创造性和实用性。下面万商云集小编就给大家详细介绍下新工艺申请专利权的内容。 一、新工艺能不能申请专利权? 新工艺可以申请专利权。 法律依据《中华人民共和国专利法》: 第二条第二款发明,是…查看详情
- 专利权转让的是什么权 专利权转让的哪些权
在平时很多的小伙伴都不知道专利权转让的是什么权的基本情况,而且对专利权转让的是什么权都不是很熟悉,下面万商云集*就为大家整理了专利权转让的是什么权这方面的相关内容,希望下面的内容能帮助到各位。 一、专利权转让的是什么权 专利…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

400-0033-166
8:30-18:00















































注册有好礼



