首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
stream
eval
get
command
range
join
web3
utf-8
dll
controller
substring
chat
import
bit
bytecode
function
ascii
node.js
client
text
match
grid
loops
nodejs
tree
schema
export
timezone
const
case
typescript
ip
flutter
hashtable
java
uml
default
yaml
filter
require
php8
c语言
testing
lua
emoji
dockerfile
format
char
cSharp
email
metadata
sum
jsp
split
select
input
jar
cmd
python2
js
cookie
settings
hashset
tags
python3
include
plugins
bash
iostream
go
frameworks
timestamp
httprequest
dagger
vbscript
cPlusPlus
hashcode
php7
vba
当前位置:
开发笔记
>
编程语言
> 正文
某点评网搜索策略的一些理解
作者:小么么和 | 来源:互联网 | 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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
int
云原生边缘计算之KubeEdge简介及功能特点
本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ...
[详细]
蜡笔小新 2023-12-14 16:49:01
int
如何使用PHP向系统日历中添加事件?
本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ...
[详细]
蜡笔小新 2023-12-14 21:02:28
bit
微软头条实习生分享深度学习自学指南
本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ...
[详细]
蜡笔小新 2023-12-14 20:58:32
bit
数据库的存储结构及其重要性
本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ...
[详细]
蜡笔小新 2023-12-14 16:00:02
bit
收集一些好用的搜索引擎的替代品
本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ...
[详细]
蜡笔小新 2023-12-13 16:47:45
get
Ubuntu安装常用软件详细步骤
目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ...
[详细]
蜡笔小新 2023-12-12 21:26:41
get
深度学习中的Vision Transformer (ViT)详解
本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ...
[详细]
蜡笔小新 2023-12-12 15:26:38
get
每天收获一点点Hadoop概述
一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ...
[详细]
蜡笔小新 2023-12-14 18:58:01
text
Android开发笔记:使用Picasso加载网络图片等比例缩放
在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ...
[详细]
蜡笔小新 2023-12-14 17:34:00
schema
如何使用Java获取服务器硬件信息和磁盘负载率
本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ...
[详细]
蜡笔小新 2023-12-14 13:56:20
case
Open judge C16H: Magical Balls 快速幂+逆元问题解析
本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ...
[详细]
蜡笔小新 2023-12-14 12:03:27
case
MACElasticsearch安装步骤及验证方法
本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ...
[详细]
蜡笔小新 2023-12-13 23:42:43
range
游标的使用笔记
本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ...
[详细]
蜡笔小新 2023-12-13 15:24:30
client
java 模拟get post请求_Java后台模拟发送http的get和post请求,并测试
个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ...
[详细]
蜡笔小新 2023-12-13 14:20:23
const
用SQL语句怎么把已存在的列加上IDENTITY(1,1)属性
ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ...
[详细]
蜡笔小新 2023-12-13 09:49:28
小么么和
这个家伙很懒,什么也没留下!
Tags | 热门标签
stream
eval
get
command
range
join
web3
utf-8
dll
controller
substring
chat
import
bit
bytecode
function
ascii
node.js
client
text
match
grid
loops
nodejs
tree
schema
export
timezone
const
case
RankList | 热门文章
1
corelDRAW中纸张RA2什么意?
2
NFS文件共享系统
3
Windows简单部署Exceptionless
4
数据库实验六:数据库系统安全
5
Unity 3D 常用 JS脚本
6
Python 高级函数map、reduce、filter与sorted
7
《喜朱拾遗承恩拜命赴任上都》翻译 原文赏析诗人唐刘长卿
8
java中的try catch_Java中的trycatchfinally异常处理
9
Python中程序员的面试题有哪些
10
OSError: [E050] Can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be a shortcut link, a Python p
11
Linux查看ha服务,Linux 高可用(HA)集群之Corosync详解
12
java和servlet交互,JSP与Servlet之间的交互,传值
13
Node.js开发札记之二·页面篇
14
基于ssm的进销存业务实现数据库
15
Windows Live Writer 支持的博客
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有