服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

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

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

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

推荐阅读

不清楚视频版权登记费用多少?1分钟让你不再茫然

视频版权进行著作权登记实行自愿登记,作品不论是否登记,作者或其他著作权人依法取得的著作权不受影响。我国实行作品自愿登记制度的在于维护作者或其他著作权人和作品使用者的合法权益,有助于解决因著作权归属造成的著作权纠纷,并为解决著作权纠纷提供初步…查看详情

拼多多连续亏损还能走多久

昨天晚上拼多多发布了第三季度财报,不出意外的继续亏损,而且亏损幅度进一步加大,动摇了市场对拼多多的信息,股市开盘后拼多多的股价一度跳水,跌幅达19%。拼多多亏损大超预期拼多多的亏损本来在市场的意料之中,但是出现亏损较去年同期翻倍,却出乎市场…查看详情

评分9.5以上的小说言情排行榜

在各位书友眼里有很多经典的小说,而且言情小说算是比较多的书迷,下面小编就给大家来详细介绍一下评分9.5以上的小说言情排行榜这一块的内容,下面的这些小说都是非常经典的。评分9.5以上的小说言情排行榜  1、《微微一笑很倾城》作者:顾漫  短书…查看详情

免费录制视频软件 免费录制视频软件排行榜前十名

现在很多的时候大家都会用到录屏的软件,而且现在市面的录屏软件非常多,下面万商云集小编给大家来详细介绍一下免费录制视频软件 免费录制视频软件排行榜前十名这一块的内容,希望能帮助到大家。  1.手机录屏精灵  录屏精灵app安卓版是一款全新的手…查看详情

2021最全培训管理系统排行榜

随着社会不断迈入互联网时代,我们的学习生活工作的方式都发生了很大变革。互联网+的形式被广泛应用,培训管理系统就是其中之一。越来越多的企业不满足于传统的培训方式,开始采取线上培训模式,精细化培训管理的同时也能降低各项成本。下面小编为大家整理了…查看详情

accessories是什么意思中文

accessories的中文意思?中文意思: n.附件(accessory的复数形式);辅助程序 Whoa,that'scool!Didyoubuysomeaccessorieswithit? 哇,太棒了!你买配套的手机配件了…查看详情

家谱制作软件哪个好 什么家谱软件好用

  古人云:礼莫大于尊祖敬宗,典莫大于修续家谱,下面万商云集小编就为大家整理下什么家谱软件好用的相关内容,希望大家能喜欢,  家谱作为中华民族传统文化最重要的组成部分,经过了几千年的社会变迁,依然延续至今日。家谱是姓氏文化的核心内容之一,有…查看详情

电脑修图软件推荐,这几款非常专业好用

想要照片美美的,自然少不了电脑修图软件啦,不管是在日常的时候,还是工作当中都会使用到,因为我为大家准备了一些时下好用又高效率的电脑修图软件,这几款都是功能很强大的,能轻松帮你修出完美图片。1、PhotoshopPhotoshop也就是大家熟…查看详情

淘宝直通车是什么意思?

  优质答案(1)  直通车是为淘宝卖家量身定制的,按点击付费的效果营销工具,实现宝贝的精准推广。用如何开网店的小编一席话总结:淘宝直通车推广,在给宝贝带来曝光量的同时,精准的搜索匹配也给宝贝带来了精准的潜在买家。淘宝直通车推广,用一个点击…查看详情

4款超好用音频编辑工具,给你带来完美后期音频处理体验!

随着互联网的发展以及人们爱美意识的增强,越来越多的音频软件层出不穷。人们对于自己的声音有着极大的追求,有的要求甜美,有的要求御姐音,各种各样的只能由音频软件来满足广大人的需求。下面就由小编来给大家整理一下音频软件哪个好? …查看详情

现代人脸识别管理系统的功能和优缺点介绍

随着时代的发展和科技的进步,高科技时代已经来临,智能化渗透愈发普遍,人脸识别作为一种基于人脸特征进行身份识别的生物识别技术,已被投入到适用于各行各业,在为企业进行考勤系统管理的你,真正了解现代人脸识别管理系统的功能和优缺点以及相关原理及功能…查看详情

网站建设的优势源于互联网的替代式发展

数字化的发展改变了大众的生活习惯,现在很难想想忽然有一天,没有了互联网我们的生活是什么样。这是一种不可逆转的替代式发展,让消费者依赖,更迫使了企业进行数字化改变。网站建设的优势大致都以此为基础,因为带来得改变不可逆转就拥有了绝对的优势,下面…查看详情

2023年奶粉品牌排行榜

  奶粉是现代婴幼儿饮食不可或缺的一部分,而想要为宝宝选购一款优质的奶粉,就需要了解一些奶粉品牌的排名信息。以下是国内奶粉品牌排行榜,供家长们参考。  第一部分:奶粉品牌排行前五名  1.惠氏  惠氏母婴是一家全球顶尖的母婴健康企业,拥有自…查看详情

公司官网制作多少钱?

  现在很多的中小企业做网站都不知道到底该从哪一步做起,很多的步骤都不是很熟悉,下面万商云集小编给大家来详细介绍一下网站建设的5大步骤,希望能帮助到大家。  公司官网制作多少钱  1.网站定位  很多新手容易犯一个错误,就是网站定位不…查看详情

客房管理软件的主要工作原理

酒店的规模可以分为大中小三种规模,但是,想要更好的管理酒店的员工,更好的去运行,就需要借助一些专业的软件,这样才可以把该管理的东西管理到位,不会出现漏洞,那么,客房管理软件介绍是什么? 1、客房管理软件介绍 房间智能化互联网…查看详情

最新文章