热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

某点评网搜索策略的一些理解

本文介绍了某点评网的搜索策略,包括名称和地址的匹配策略,模糊匹配的方法以及不同口音和拼音的近似发音。同时提供了一些例子来说明这些策略的应用。

1. 查询串为 纯汉字,查询出被拆分为单个字,然后使用全文检索,尽可能找出包含查询串的 POI,查找范围为所有POI拥有的文本信息。


例如搜索 “顺轩”,返回结果为:http://www.dianping.com/search/keyword/1/0_顺轩而搜索“轩顺”,返回结果为:http://www.dianping.com/search/keyword/1/0_轩顺两个个搜索返回的结果是一致的,可得使用的匹配步骤比较简单;返回列表的排序规则可以总结为两条:a. POI中查询出是否按照查询串中的顺序连续出现b. 名称包含优先于地址包含c. 匹配发生在 名称,标签,地址 等2. 查询串为 纯拼音,不对查询串(拼音串)进行任何拆分
例子1,shuguanghttp://www.dianping.com/search/keyword/1/0_shuguang例子2,shuguanhttp://www.dianping.com/search/keyword/1/0_shuguan两个搜索返回的结果基本一致,并且同时出现提醒,你要找的是不是曙光书馆
例子3,caguanhttp://www.dianping.com/search/keyword/1/0_caguan你要找的是不是茶馆
例子4,canguan(餐馆)http://www.dianping.com/search/keyword/1/0_canguan上海站全部商户中,没有找到"canguan"(0)
例子5,cacantinghttp://www.dianping.com/search/keyword/1/0_cacanting你要找的是不是查餐厅茶餐厅例子6,xijiaobailian(西郊百联)http://www.dianping.com/search/keyword/1/0_xijiaobailian你要找的是不是西郊百联例子7,xijiaobalianhttp://www.dianping.com/search/keyword/1/0_xijiaobalian你要找的是不是西郊百联
例子8,xijiaoblianhttp://www.dianping.com/search/keyword/1/0_xijiaoblian上海站全部商户中,没有找到"xijiaoblian"(0)
例子由上面的例子,可以大概推测如下:a. 内部有一个词典,保存了 词和拼音 映射关系,b. 先使用 拼音进行匹配搜索,匹配策略可能是:b1. 精准匹配b2. 包含匹配b3. 模糊匹配(最小编辑距离 <某个阙值,比如2,参考例子6,7,8,读者可自行尝试其他组合)b4. 没有找到任何匹配,即返回空,参考例子4.(canguang竟然没有,很让人费解)c. 利用拼音映射到的汉字,回归到第一条中的 纯汉字 搜索d. 匹配发生在 名称,标签,地址 等 另外,例子9,jiaodahttp://www.dianping.com/search/keyword/1/0_jiaoda你要找的是不是交大
例子10,jiadahttp://www.dianping.com/search/keyword/1/0_jiada你要找的是不是佳达例子11,jiaodhttp://www.dianping.com/search/keyword/1/0_jiaod上海站全部商户中,没有找到"jiaod"(0)
例子12,shangdahttp://www.dianping.com/search/keyword/1/0_shangda你要找的是不是散打上大杉达例子13,shangdhttp://www.dianping.com/search/keyword/1/0_shangd上海站全部商户中,没有找到"shangd"(0)
例子14,sangdahttp://www.dianping.com/search/keyword/1/0_sangda你要找的是不是散打上大杉达例子15,suguanghttp://www.dianping.com/search/keyword/1/0_suguang你要找的是不是曙光书馆由上面的例子可以推测,b3 的描述可能是不正确的(例子9,11不符合 最小编辑距离匹配),不能完全断定 -- 查询使用了 最小编辑距离匹配,应该还加入了 口音 的考虑(对比 例子15 与前面的例子1,2):<1> 不同的口音,相同的拼音,存在不同的发音,考虑了同一个拼音,近似发音的匹配<2> 不同的口音,不同的拼音,存在近似的发音,后续有新发现,继续补充3. 查询串为 汉字+拼音例子16,属guanghttp://www.dianping.com/search/keyword/1/0_属guang你要找的是不是曙光书馆
例子25,素guanghttp://www.dianping.com/search/keyword/1/0_素guang你要找的是不是曙光书馆
例子17,属guanhttp://www.dianping.com/search/keyword/1/0_属guan你要找的是不是曙光书馆
例子18,shu光http://www.dianping.com/search/keyword/1/0_shu光你要找的是不是曙光书馆
例子19,shu广http://www.dianping.com/search/keyword/1/0_shu广搜索策略 的一些理解" title="某点评网 搜索策略 的一些理解" src="https://www.#.com/go/dW5kZWZpbmVk" referrerpolicy="no-referrer">某点评网 <wbr>搜索策略 <wbr>的一些理解

例子20,shang大http://www.dianping.com/search/keyword/1/0_shang大某点评网 <wbr>搜索策略 <wbr>的一些理解

例子21,shang大leihttp://www.dianping.com/search/keyword/1/0_shang大lei某点评网 <wbr>搜索策略 <wbr>的一些理解

例子22,shanglei大http://www.dianping.com/search/keyword/1/0_shanglei大上海站全部商户中,没有找到"shanglei大"(0
例子23,上dahttp://www.dianping.com/search/keyword/1/0_上da某点评网 <wbr>搜索策略 <wbr>的一些理解

例子24,西jiaobailianhttp://www.dianping.com/search/keyword/1/0_西jiaobailian你要找的是不是西郊百联
a. 首先不区分 拼音 汉字,进行 全文检索,找到包含整个串的POI,不考虑 查找单元 的顺序a1. 连续的拼音视为一个查找单元,单个汉子视为查找单元,参考例子20,21,22a2. 查找不到包含所有 查找单元 的 POI系统,转到 bb. 汉字映射为拼音,转行为 第二条 纯拼音 搜索,注意 例子17,25



推荐阅读
  • 现在越来越多的人使用IntelliJIDEA,你是否想要一个好看的IDEA主题呢?本篇博客教你如何设置一个美美哒IDEA主题,你也可以根据 ... [详细]
  • 探讨了在VB中使用WebBrowser控件时遇到的‘无法找到或打开C:\WINDOWS\system32\ieframe.dll’问题,并提供了解决方案。 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • Python正则表达式(Python RegEx)
    Python正则表达式快速参考常用函数:re.match():从字符串的起始位置匹配一个正则表达式。re.search():扫描整个字符串并返回第一个成功的匹配。re.s ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • WPF MVVM: 动态添加控件与数据绑定的最佳实践
    本文介绍如何在WPF应用程序中使用MVVM模式动态添加控件并进行数据绑定。通过示例展示如何创建一个虚拟键盘,其中包含多个按键。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
author-avatar
小么么和
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有