使用非精准检索的思路实现「查找附近的人」

简介: 通过非精准Top K检索思路实现“查找附近的人”,借鉴网页搜索的近似匹配逻辑,优先筛选同城或同区域用户以缩小检索范围。将地理空间划分为带编号区域并建立索引,先定位用户所在区域,再计算范围内用户距离,提升查询效率。

事实上,「查找附近的人」和「检索相关的网页」这两个功能的本质是非常相似的。在这两个功能的实现中,我们都没有明确的检索目标,也就都不需要非常精准的检索结果,只需要保证质量足够高的结果包含在 Top K 个结果中就够了。所以,非精准 Top K 检索也可以作为优化方案,来实现「查找附近的人」功能。那具体是如何实现的呢?

我们可以通过限定「附近」的范围来减少检索空间。一般来说,同一个城市的人往往会比不同城市的人距离更近。所以,我们不需要去查询所有的人,只需要去查询自己所在城市的人,然后计算出自己和他们的距离就可以了,这样就能大大缩小检索范围了。那在同一个城市中,我们也可以优先检索同一个区的用户,来再次缩小检索范围。这就是 非精准检索的思路了。

在这种限定「附近」区域的检索方案中,为了进一步提高检索效率,我们可以将所有的检索空间划分为多个区域并做好编号,然后以区域编号为 key 做好索引。这样,当我们需要查询附近的人时,先快速查询到自己所属的区域,然后再将该区域中所有人的位置取出,计算和每一个人的距离就可以了。在这个过程中,划分检索空间以及对其编号是最关键的一步,那具体怎么操作呢?我们接着往下看。

相关文章
|
4月前
|
编解码 算法 前端开发
java后端开发学习路线+避坑指南
java后端开发学习路线+避坑指南
|
2月前
|
存储 供应链 数据可视化
大模型应用:面向结构化表格的 RAG 实践:技术架构与特性解析.26
本文提出面向结构化表格的RAG新模式,突破传统RAG将表格转为纯文本导致语义丢失、多表融合低效、版本兼容性差等瓶颈。通过结构化解析、元数据增强、向量索引优化与精细化检索,实现行列语义保留、跨表关联查询及本地轻量化部署,显著提升财务、政务等场景下Excel/CSV数据的检索精度与问答质量。
197 11
|
1月前
|
弹性计算 API 数据安全/隐私保护
阿里云服务器如何续费?续费有没有优惠?通常具体有哪些优惠?
本文主要介绍阿里云服务器包年包月实例的续费方法,包括PC端、阿里云App端和API/CLI续费的具体步骤。同时,文章还探讨了续费优惠的类型及规则,如限时活动优惠、长期折扣政策、节省计划与预留实例券等,帮助用户最大化利用优惠,降低长期使用成本。此外,还介绍了续费过程中的注意事项,如自动续费限制、续费变配选项等,确保云服务器的稳定运行和数据安全。
|
4月前
|
算法 搜索推荐
如何使用概率模型中的 BM25 算法进行打分?
BM25是一种基于概率模型的文本相关性打分算法,可视为TF-IDF的升级版。它综合考虑词频(TF)、逆文档频率(IDF)、文档长度及查询词频,并引入非线性增长与饱和机制。通过参数k1、k2和b调节词频权重、文档长度影响和查询词权重,使评分更精准。广泛应用于Elasticsearch、Lucene等搜索引擎中。
|
消息中间件 监控 大数据
Kafka消息队列架构与应用场景探讨:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Kafka的消息队列架构,包括Broker、Producer、Consumer、Topic和Partition等核心概念,以及消息生产和消费流程。此外,还介绍了Kafka在微服务、实时数据处理、数据管道和数据仓库等场景的应用。针对面试,文章解析了Kafka与传统消息队列的区别、实际项目挑战及解决方案,并展望了Kafka的未来发展趋势。附带Java Producer和Consumer的代码示例,帮助读者巩固技术理解,为面试做好准备。
1398 0
|
4月前
|
搜索推荐 数据库 索引
广告引擎的整体架构和工作过程
广告引擎核心是匹配用户与广告。通过用户标签、广告位信息及广告主定向条件,构建倒排索引,实现高效召回与排序,0.1秒内完成广告返回,并实时监测展现、点击与计费,确保精准投放与预算控制。
|
8月前
|
监控 安全 BI
电商 API 助力,多平台物流信息无缝对接
在电商多平台运营中,物流信息割裂导致效率低下、客服压力大。通过API技术,可实现订单抓取、状态同步与数据聚合,打通电商平台、快递系统与商家ERP,提升运营效率与用户体验。
414 0
|
Linux 数据安全/隐私保护 Python
LInux下 python混淆代码打包产出exe
安装 PyArmor 加密Python程序:使用`pip install pyarmor`。为避免混淆 venv 目录,可指定排除此目录:`.\/venv\/bin\/pyarmor-7 pack -e \"--onefile\" -x \"--exclude venv\" main.py`。查阅详细文档:[官方指南](https://pyarmor.readthedocs.io/zh/v7.x/advanced.html)。
|
Unix Java C#
记一次对Pdfium .Net包装器的跨平台封装
PDFium 是一个开源的 PDF 渲染引擎,最初由 Google 和 Foxit Software 合作开发,并且使用 BSD 3-Clause 许可协议发布。它被设计用于在各种平台上渲染 PDF 文件,包括 Windows、macOS 和 Linux。
830 3
|
SQL 数据安全/隐私保护 索引
SQL语句速成
《SQL语句速成》由blue编写,涵盖建表、插入、查询、更新、删除、视图创建、权限管理及索引操作等核心内容。通过具体示例介绍SQL基本语法和常用聚合函数,帮助读者快速掌握SQL编程技巧。发布于2024年7月19日。
281 7