首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
php5
dagger
hash
php8
split
nodejs
php7
byte
schema
less
foreach
python3
case
lua
c语言
char
scala
js
main
javascript
node.js
input
hashtable
web
import
select
erlang
controller
utf-8
perl
flutter
bash
command
actionscrip
random
hashcode
go
grid
int
default
cPlusPlus
object
require
process
header
expression
数组
rsa
emoji
replace
integer
java
timestamp
vba
instance
typescript
fetch
format
golang
metadata
ip
dockerfile
filter
request
datetime
heatmap
join
ascii
install
stream
chat
text
export
blob
const
regex
version
string
eval
当前位置:
开发笔记
>
编程语言
> 正文
某点评网搜索策略的一些理解
作者:小么么和 | 来源:互联网 | 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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
import
idea全局主题_IntelliJ IDEA好看的主题设置(支持自定义)
现在越来越多的人使用IntelliJIDEA,你是否想要一个好看的IDEA主题呢?本篇博客教你如何设置一个美美哒IDEA主题,你也可以根据 ...
[详细]
蜡笔小新 2024-11-17 18:31:07
web
解决VB中WebBrowser控件引用ieframe.dll错误的方法
探讨了在VB中使用WebBrowser控件时遇到的‘无法找到或打开C:\WINDOWS\system32\ieframe.dll’问题,并提供了解决方案。 ...
[详细]
蜡笔小新 2024-11-19 10:18:04
import
Go语言中接口型函数的应用与解析
本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ...
[详细]
蜡笔小新 2024-11-21 12:21:19
select
如何将955万数据表的17秒SQL查询优化至300毫秒
本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ...
[详细]
蜡笔小新 2024-11-21 12:11:54
select
入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ...
[详细]
蜡笔小新 2024-11-21 10:03:34
import
在OpenCV 3.1.0中实现SIFT与SURF特征检测
本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ...
[详细]
蜡笔小新 2024-11-20 21:00:18
import
设置Shadowsocks公共代理的关键步骤
本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ...
[详细]
蜡笔小新 2024-11-20 20:41:33
utf-8
理解浏览器历史记录(2)hashchange、pushState
阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ...
[详细]
蜡笔小新 2024-11-20 20:05:37
import
java写简易五子棋游戏。
importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ...
[详细]
蜡笔小新 2024-11-20 17:34:54
select
深入解析 Bootstrap Table 的使用技巧
本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ...
[详细]
蜡笔小新 2024-11-20 17:21:26
js
利用JavaScript for循环构建九九乘法表
本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ...
[详细]
蜡笔小新 2024-11-20 16:16:22
split
Python正则表达式(Python RegEx)
Python正则表达式快速参考常用函数:re.match():从字符串的起始位置匹配一个正则表达式。re.search():扫描整个字符串并返回第一个成功的匹配。re.s ...
[详细]
蜡笔小新 2024-11-19 18:22:57
split
UE4 中的距离场技术详解
本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ...
[详细]
蜡笔小新 2024-11-19 18:21:03
char
WPF MVVM: 动态添加控件与数据绑定的最佳实践
本文介绍如何在WPF应用程序中使用MVVM模式动态添加控件并进行数据绑定。通过示例展示如何创建一个虚拟键盘,其中包含多个按键。 ...
[详细]
蜡笔小新 2024-11-17 12:58:14
select
Oracle SQL 第二天
本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ...
[详细]
蜡笔小新 2024-11-16 16:43:29
小么么和
这个家伙很懒,什么也没留下!
Tags | 热门标签
php5
dagger
hash
php8
split
nodejs
php7
byte
schema
less
foreach
python3
case
lua
c语言
char
scala
js
main
javascript
node.js
input
hashtable
web
import
select
erlang
controller
utf-8
perl
RankList | 热门文章
1
手机QQ设置网站荣耀段位具体操作方法
2
南理 奇偶数分离
3
网络攻击有哪些?如何防御?
4
个体都会学习的JavaScript之DOM树
5
关于一些避免在for循环里调用执行SQL的方法
6
数据库基本介绍
7
轻松实现Apache,Tomcat集群和负载均衡(http://hi.baidu.com/luodaijun/blog/item/5bbe4cfb5ffef864034f56a1.html)...
8
php网站_十周后,62%的PHP网站将运行在一个不受支持的PHP版本上
9
Jenkins教程:使用Jenkins进行持续集成
10
React Native iOS上的默认标头垂直高度过高,如何更改?
11
宏发家具怎么样,宏发家具报价
12
LibSvm python 调试实验
13
机器人学领域的顶级期刊总结
14
Python3正则表达式_re模块_教程详解_笔记_完整内容
15
pyinstaller打包的exe执行文件,模块找不到问题解决方案
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有