`
dsxwjhf
  • 浏览: 72471 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

[转] Sphinx SetGeoAnchor 经纬度查找附近地点

阅读更多
原文地址 http://www.douban.com/group/topic/30286342

Sphinx 的 SetGeoAnchor方法,(LinkWith:http://sphinxsearch.com/docs/manual-0.9.9.html#api-func-setgeoanchor)
coreseek提供的中文翻译手册:
function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long )
为地表距离计算设置锚点,并且允许使用它们。$attrlat 和$attrlong 是字符串,分别指定了对应经度和纬度的属性名称。$lat 和$long 是浮点值,
指定了锚点的经度和纬度值,以角度为单位。一旦设置了锚点,您就可以在您的过滤器和/或排序表达式中使用@geodist 特殊属性。Sphinx 将在每一次全文检索中计算给定经纬度与锚点之前的地表距离,并把此距离附加到匹配结果
上去。SetGeoAnchor 和索引属性数据中的经纬度值都是角度。而结果会以米为单位返回,因此地表距离 1000.0 代表 1 千米。一英里大约是 1609.344 米。

coreseek这部分翻译有个问题,原文说的是弧度,而coreseek翻译成了角度,这是个错误。

一般由GPS提供的经纬度格式(角度)如:longitude:111.177579, latitude:53.051679 ,转换成弧度,公式为 (角度*Pi)/180,

首先在做索引的时候 ,得将经纬度数据源转换成弧度。

SQL:select id, radians(longitude) as longitude, radians(latitude) as latitude from locations

PHP:
$long = (float)$_GET['longitude'];
$lat = (float)$_GET['latitude'];
$radius = (float) 10000.0 * 1.61; //搜索10公里以内的地点

$cl = new SphinxClient();
$cl->SetServer("localhost", 3312);
$cl->SetMatchMode(SPH_MATCH_ANY);
$cl->SetArrayResult(true);
$cl->SetLimits(0, 100);
$cl->SetGeoAnchor('latitude', 'longitude', (float) deg2rad($long), (float) deg2rad($lat)); //角度转换成弧度

$cl->SetSortMode(SPH_SORT_EXTENDED, '@geodist asc'); // 按距离正向排序
$cl->SetFilterFloatRange('@geodist', 0.0, $radius); // 过滤掉大于10公里的地点

$result = $cl->Query('', '*');
分享到:
评论

相关推荐

    sphinx 参考手册和源程序

    Coreseek 全文检索服务器 2.0 (Sphinx 0.9.8)参考手册和源程序 手册內容: 文档版本:v0.9 目录 1. 简介 1.1. 什么是 Sphinx 1.2. Sphinx 的特性 1.3. 如何获得 Sphinx 1.4. 许可协议 1.5. 作者和贡献者 1.6. ...

    语音识别 sphinx4 JAVA 教程

    【语音识别技术与Sphinx-4简介】 语音识别技术是一种将人类语音转化为机器可理解文本的技术,广泛应用于智能助手、电话交互系统、自动驾驶等领域。Sphinx-4是卡内基梅隆大学(CMU)开发的一个开源语音识别引擎,...

    php7的sphinx扩展,适用linux,mac

    3. 编译并安装扩展:运行`phpize`来配置编译环境,然后执行`./configure --with-sphinx=/path/to/sphinx`,最后使用`make && make install`完成编译和安装。 4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件...

    sphinx4 中文声学模型、词典、语言模型

    Sphinx4是一款强大的开源Java语音识别引擎,专为实时、高精度的语音处理而设计。在中文环境下,Sphinx4的使用需要特定的声学模型、词典和语言模型,以便能够准确地理解和识别中文语音输入。下面我们将深入探讨这些...

    sphinx中文语音训练手册

    本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。 本文档编写日期 2013-04-23 1、为什么要训练? sphinx4目前的版本中仅提供了英文等语音识别库。...

    sql全文索引 sphinx

    这样,在查询时,只需查找索引,而不是遍历所有文档,大大提高了搜索速度。 3. **Sphinx配置(sphinx.conf)** `sphinx.conf`是Sphinx的主要配置文件,包含了索引定义、源设置、搜索守护进程(searchd)配置、网络...

    CMU Sphinx的语音模型

    MDEF(Model Definition File)文件主要存储了声学模型的结构信息,包括状态、音素和转态的信息。这些信息定义了语音识别系统如何解析输入的音频流,将其转化为一系列的音素序列。 在语音识别中,声学模型通常由一...

    pocketsphinx语音库

    **Pocketsphinx语音库详解** Pocketsphinx是CMU Sphinx项目的一部分,由卡内基梅隆大学(Carnegie Mellon University)开发,是一款强大的、开源的语音识别引擎,主要用于离线语音识别。它专为资源有限的设备设计,...

    数据库 搜索引擎 sphinx

    数据库搜索引擎Sphinx是一款高效、可定制且功能丰富的全文搜索引擎,主要设计用于Web应用,以便快速地从大量数据中检索相关信息。Sphinx的核心特性包括实时索引、近实时搜索以及高度可扩展性,使得它在处理大数据量...

    java 整合 sphinx

    Java整合Sphinx主要涉及到的是在Java应用程序中使用Sphinx搜索引擎进行数据检索的技术。Sphinx是一款高性能、全文搜索引擎服务器,常用于构建实时的、基于全文的搜索功能。它提供了丰富的API和多种语言的客户端库,...

    sphinx中文包zh-CN.zip

    这个压缩包包含了针对中文语言的特定模型和资源,使得Sphinx能够处理和理解中文语音输入。"zh-CN" 表明这是为中国汉语设计的版本,适应普通话的语音特征。 描述中的链接指向了一个官方的下载源,提供了一个名为 ...

    pocketsphinx在windows下的中文语音识别Demo

    标题中的“pocketsphinx在windows下的中文语音识别Demo”表明了本文将关注如何在Windows操作系统中使用开源项目Pocketsphinx进行中文语音识别的演示。Pocketsphinx是一个轻量级的语音识别引擎,尤其适用于嵌入式系统...

    sphinx3-0.4.1.rar_Sphinx3_c 语音识别

    sphinx系统是一个拥有悠久历史的语音识别系统,李开复自称第一个sphinx是他写的。 传说 中是第一个实用的10数字语音系统。 是由卡奈基.美隆大学研发。 sphinx3.x是基于C语言的最新版本,sphinx和 sphinx2请大家...

    sphinx+xdict资源包

    - **协同工作**:在编写Sphinx文档时,可以利用XDict快速查找和验证技术术语,确保文档的准确性。 - **术语一致性**:XDict可以帮助保持文档中的术语一致,提升专业度。 - **提升效率**:两者结合使用,可以加速...

    sphinx的简体中文汉化包

    如果你找不到这个目录,可以去Sphinx的GitHub仓库查找对应的版本并下载。 安装汉化包后,需要在`conf.py`配置文件中进行设置。添加以下代码来指定语言为简体中文: ```python language = 'zh_CN' ``` 接下来,你...

    php7.3-sphinx.zip

    在论坛或问答平台,用户可以查找相关信息;在新闻聚合网站,可以实现个性化推荐。通过Sphinx的实时索引和分布式搜索能力,可以大大提高用户体验,降低服务器负载。 总结来说,PHP7.3版本的Sphinx扩展为开发人员提供...

    sphinx支持discuz包

    **Sphinx 概述** Sphinx 是一个高性能、全文搜索引擎库,主要被设计用于Web应用,提供快速且精准的搜索功能。它是一个开源项目,由俄罗斯的 Andrew Aksyonov 创建,起初是为了解决其在线教育平台的搜索需求。Sphinx...

    pocketsphinx、speechrecognition中文语音包.rar

    本文将详细介绍pocketsphinx以及其在中文语音识别中的应用。pocketsphinx是一款开源的、轻量级的语音识别引擎,它主要用于离线语音识别任务,特别适合于资源有限的设备上运行。该软件包是CMU Sphinx项目的一部分,由...

    pocketsphinx-android-demo资源包

    《探索pocketsphinx-android-demo:语音识别在Android平台的应用》 在移动设备上,语音识别技术已经成为人机交互的重要组成部分,极大地提升了用户体验。本资源包——"pocketsphinx-android-demo",是专为Android...

Global site tag (gtag.js) - Google Analytics