首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
md5
sum
object
node.js
header
command
future
solr
jsp
get
subset
filter
email
integer
utf-8
buffer
vba
input
web3
main
foreach
hashtable
spring
dll
js
keyword
merge
vbscript
perl
config
netty
join
hashset
audio
default
erlang
replace
express
version
heap
datetime
cookie
cmd
substring
cSharp
io
select
usb
include
nodejs
window
frameworks
settings
char
less
dockerfile
metadata
byte
chat
dagger
client
instance
export
request
emoji
const
hook
triggers
function
timezone
int
javascript
plugins
php5
ip
heatmap
fetch
uri
split
当前位置:
开发笔记
>
编程语言
> 正文
某点评网搜索策略的一些理解
作者:小么么和 | 来源:互联网 | 2023-12-09 08:18
本文介绍了某点评网的搜索策略,包括名称和地址的匹配策略,模糊匹配的方法以及不同口音和拼音的近似发音。同时提供了一些例子来说明这些策略的应用。
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,shuguang
http://www.dianping.com/search/keyword/1/0_shuguang
例子2,shuguan
http://www.dianping.com/search/keyword/1/0_shuguan
两个搜索返回的结果基本一致,并且同时出现提醒,你要找的是不是
曙光
书馆
例子3,caguan
http://www.dianping.com/search/keyword/1/0_caguan
你要找的是不是
茶馆
例子4,canguan(餐馆)
http://www.dianping.com/search/keyword/1/0_canguan
上海站全部商户中,没有找到"canguan"(0)
例子5,cacanting
http://www.dianping.com/search/keyword/1/0_cacanting
你要找的是不是
查餐厅
茶餐厅
例子6,xijiaobailian(西郊百联)
http://www.dianping.com/search/keyword/1/0_xijiaobailian
你要找的是不是
西郊百联
例子7,xijiaobalian
http://www.dianping.com/search/keyword/1/0_xijiaobalian
你要找的是不是
西郊百联
例子8,xijiaoblian
http://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,jiaoda
http://www.dianping.com/search/keyword/1/0_jiaoda
你要找的是不是
交大
例子10,jiada
http://www.dianping.com/search/keyword/1/0_jiada
你要找的是不是
佳达
例子11,jiaod
http://www.dianping.com/search/keyword/1/0_jiaod
上海站全部商户中,没有找到"jiaod"(0)
例子12,shangda
http://www.dianping.com/search/keyword/1/0_shangda
你要找的是不是
散打
上大
杉达
例子13,shangd
http://www.dianping.com/search/keyword/1/0_shangd
上海站全部商户中,没有找到"shangd"(0)
例子14,sangda
http://www.dianping.com/search/keyword/1/0_sangda
你要找的是不是
散打
上大
杉达
例子15,suguang
http://www.dianping.com/search/keyword/1/0_suguang
你要找的是不是
曙光
书馆
由上面的例子可以推测,b3 的描述可能是不正确的(例子9,11不符合
最小编辑距离匹配),不能完全断定 -- 查询使用了 最小编辑距离匹配,应该还加入了 口音 的考虑(对比 例子15 与前面的例子1,2):
<1> 不同的口音,相同的拼音,存在不同的发音,考虑了同一个拼音,近似发音的匹配
<2> 不同的口音,不同的拼音,存在近似的发音,
后续有新发现,继续补充
3. 查询串为 汉字+拼音
例子16,属guang
http://www.dianping.com/search/keyword/1/0_属guang
你要找的是不是
曙光
书馆
例子25,素guang
http://www.dianping.com/search/keyword/1/0_素guang
你要找的是不是
曙光
书馆
例子17,属guan
http://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">
例子20,shang大
http://www.dianping.com/search/keyword/1/0_shang大
例子21,shang大lei
http://www.dianping.com/search/keyword/1/0_shang大lei
例子22,shanglei大
http://www.dianping.com/search/keyword/1/0_shanglei大
上海站全部商户中,没有找到"shanglei大"(0
例子23,上da
http://www.dianping.com/search/keyword/1/0_上da
例子24,西jiaobailian
http://www.dianping.com/search/keyword/1/0_西jiaobailian
你要找的是不是
西郊百联
a. 首先不区分 拼音 汉字,进行 全文检索,找到包含整个串的POI,不考虑 查找单元 的顺序
a1. 连续的拼音视为一个查找单元,单个汉子视为查找单元,参考例子20,21,22
a2. 查找不到包含所有 查找单元 的 POI系统,转到 b
b. 汉字映射为拼音,转行为 第二条 纯拼音 搜索,注意 例子17,25
搜索
http
search
key
https
go
vb
int
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
config
编写有趣的VBScript恶作剧脚本
本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ...
[详细]
蜡笔小新 2024-12-28 09:46:23
js
技术分享:从动态网站提取站点密钥的解决方案
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
get
实现页面自动加载更多内容功能:类微博和Pinterest的设计
在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ...
[详细]
蜡笔小新 2024-12-23 17:01:04
sum
在Xcode中配置自定义文本样式
本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ...
[详细]
蜡笔小新 2024-12-23 14:36:31
get
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
get
Handling Null Object Encoding in OAuth 1.0a API Implementation
Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ...
[详细]
蜡笔小新 2024-12-28 08:54:34
config
网络链路质量监控:Smokeping部署与配置
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
main
DNN Community 和 Professional 版本的主要差异
本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ...
[详细]
蜡笔小新 2024-12-27 13:14:08
input
Hadoop入门与核心组件详解
本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ...
[详细]
蜡笔小新 2024-12-26 13:12:48
utf-8
Python 爬虫基础教程及代码实例
根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-26 10:42:40
main
POJ 1691 矩形涂色问题 (DFS/状态压缩DP)
本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ...
[详细]
蜡笔小新 2024-12-25 18:27:21
sum
DLP数据泄露检测原理浅析
最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ...
[详细]
蜡笔小新 2024-12-25 18:19:32
main
Web前端开发中的HTML与CSS命名规范
作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ...
[详细]
蜡笔小新 2024-12-25 11:06:17
js
JavaScript实现表格数据的实时筛选功能
本文介绍如何使用JavaScript实现对表格数据的实时筛选,帮助开发者提高用户体验。通过简单的代码示例,展示如何根据用户输入的关键字动态过滤表格内容。 ...
[详细]
蜡笔小新 2024-12-25 09:51:24
main
深入理解Redis的数据结构与对象系统
本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ...
[详细]
蜡笔小新 2024-12-25 04:11:22
小么么和
这个家伙很懒,什么也没留下!
Tags | 热门标签
md5
sum
object
node.js
header
command
future
solr
jsp
get
subset
filter
email
integer
utf-8
buffer
vba
input
web3
main
foreach
hashtable
spring
dll
js
keyword
merge
vbscript
perl
config
RankList | 热门文章
1
数据库考题概念重点
2
unantu下的tmp文件夹_UG NX软件在使用中文名称的系统用户名解决方案(UGII_TMP_DIR)...
3
MVC 外网 上传 下载 实现方式(一)
4
知识付费时代,你怎么看?
5
【linux】I/O五种模型
6
svn切换账号后无法update_刺激战场国际服疑似锁国区 新玩家无法注册 玩家务必不要切换账号...
7
【剑指 Offer II】 105. 岛屿的最大面积
8
JSON.stringify与JSON.parse怎么实现
9
UTF-8与ASCII(GB2312)之互转
10
windbg检查常用命令
11
win7进不去安全模式怎么办 win7进不去安全模式解决方法
12
ubuntu下基于c++的opencv学习
13
Dijkstra算法求无向带权图最短路径——Java
14
抖音电商橱窗日入1000项目详解
15
html5 json表单储存,将表单数据存储到json文件中
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有