首页 >知识讲堂 >网站建设知识>美团是怎么实现搜索关键词自动匹配功能的?

美团是怎么实现搜索关键词自动匹配功能的?

2020-12-30 11:44:59 阅读(584 评论(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 

以上就是关于美团是怎么实现搜索关键词自动匹配功能的?的相关介绍,更多美团是怎么实现搜索关键词自动匹配功能的?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对美团是怎么实现搜索关键词自动匹配功能的?有更深的了解和认识。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

经典电影排行榜前十名介绍,大家不要错过

在生活中通过看电影,不仅能够起到一定的娱乐作用,同时也可以带给大家一定的感悟和成长,尤其是一些经典的电影,更需要大家细细的去品味,也能够带给各种不一样的人生体验,那么下面就针对于经典电影排行榜的前十名,为大家进行…查看详情

不要忽略商城后台系统的重要性,后台没有这些功能不如不要!

商城后台系统是管理商城后台和前台系统的唯一途径,它的功能是否完善、简便、实用、更新是对系统后台最真实的考验。网站前台负责精美和花哨,而后台更要注重它的的实用性和便捷性。图片来源于网络 商城后台系统必不可少的功能…查看详情

何为注册商标?如何把未注册商标变为注册商标?

现在社会上不管是商品还是服务,都有自己的品牌。我们在消费的时候也会优先考虑商品的牌子,而这个牌子就是代表着它的自有商标了。如果想拥有一个独立属于自己的商标,那就要向国家申请注册了,下面由小万来告诉大家何为注册商标…查看详情

四款看小说就能赚钱的app,书虫们赶紧冲起来

每到过节的时候,公司的群里老板都会给我们发一些大额的红包,想要在第一时间之内抢到红包的话,我们是可以借助工具的工具能够再发出红包的,第一时间之间也帮你抢,那么抢红包小说排行榜有什么?1、牛角阅读赚钱app是一款舒服阅读…查看详情

著作权一般侵权赔偿多少钱

  现在是一个尊重原创,鼓励原创的时代,每一个著作权人的作品一般都是受到法律保护的,如果其他人对著作权人自己的作品存在侵权的行为,给著作权人带来了损害。那么,著作权人是有权依法上法院起诉对方,要求其赔偿自己的损失…查看详情

企业网站如何设计?企业网站设计技巧

  互联网时代,企业网站对于企业的重要性毋庸置疑,创业团队新成立一个公司,需要最简单快速高效地让更多人知道了解自己的企业,那么首选就是建设一个网站。企业建设网站,可以通过网站解决品牌宣传、产品销售、客户服务等一系…查看详情

不懂分析没法做专业报表?瑞云服务云这款报表设计器可以拯救你

当前,经济的全球化、技术的进步使得制造企业提供的产品越来越趋向于同质化,为了应对越来越激烈的竞争,企业必须打造出独特的、高附加值的服务,才能提升产品差异化,增加企业核心竞争优势。 但是真正做到满意服务,使服务展…查看详情

免费好用的浏览器有哪些 免费好用的浏览器推荐

  不管是什么内核,那都是底层架构的问题,最好用的浏览器还得是适合自己的,下面小编就给大家来介绍一下免费好用的浏览器有哪些  免费好用的浏览器推荐这一块的内容,不知道下面的这几款浏览器大家使用过没有。免费好用…查看详情

根据第45类商标对照表,先明确行业关键词再确定核心注册项目

同一个商标申请多类别注册的做法被称为防御性注册,而不同商标进行防御注册的方法是有明显区别的。本文针对以第45类商标注册为主要注册类别的商标,整理了以下相关的主要注册范围、行业关键词,以及注册项目对照表。图片来源于网络…查看详情

nba无插件在线直播软件有哪些 免费NBA直播在线观看软件推荐

健康是我们生存发展的前提,健康离不开体育运动。美国职业篮球联赛是全球最热门的体育项目赛事之一,越来越多的人都关注着nba比赛。下面是我给大家推荐的5款nba无插件在线直播软件,内容如下:1.爱奇艺体育它是一款可以观看nba的无插…查看详情

国内获得融资的6家移动CRM平台介绍

随着移动互联网时代到来,只能用于电脑的CRM客户管理系统已无法满足现代企业需求,因而催生出了移动CRM平台,也催生出许多的移动CRM平台厂商。而这些厂商中,也不乏优秀的、获得融资的移动CRM平台,接下来小万就为大家选出6家获得融资…查看详情

windows10语言栏怎么设置

  Windows10语言栏是一个非常重要的工具,它可以设定你想要使用的语言,使得你的电脑界面上显示相应语言的文字,帮助你更加方便的进行操作和使用。  一般情况下,语言栏的默认设置可能是英语或者其他语言是英语,但如果你不想使…查看详情

2021最好用的5款手机北斗导航软件推荐,哪款最适合你?

GPS导航目前已经深入人们的日常生活中,它用于导航和定位的非要有用,既精确又迅速。而目前国内的北斗导航系统技术上增加了手机软件后,朋友们可以根据免费下载北斗导航系统手机软件随时随地掌握别人的即时位置,非常方便。但是市…查看详情

好看的美国喜剧有哪些 美国最经典十大喜剧

其实很多人都喜欢看美剧,而且经典的美剧也有很多,下面万商云集小编给大家来详细介绍一下好看的美国喜剧有哪些 美国最经典十大喜剧,不知道下面的这些美剧大家看过没有。  麦克斯的话看似是狠辣的毒鸡汤,可当我们认真品味,…查看详情

公司注销需要缴纳哪些费用

  一家没有企业账户的公司注销需要钱么?  一家没有企业账户的公司注销,如果是自己办理,不需要费用,如果是找人代办,肯定需要费用。  首先你想要注销公司,自己办理的话,是不需要费用,只是要自己多跑税务局和工商局。如…查看详情

首页

产品

万商学院

客户服务

会员中心

当前站点

h

选择站点

全国站成都

一 客户顾问-张三

已为0个客户提供专业互联网服务咨询
  • 手机号码
  • 验证码图形验证码换一张
  • 短信校验码

    电话咨询

    在线咨询