Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测给定字符串中的地点/位置名称_Javascript_Php_Google Maps Api 3 - Fatal编程技术网

Javascript 检测给定字符串中的地点/位置名称

Javascript 检测给定字符串中的地点/位置名称,javascript,php,google-maps-api-3,Javascript,Php,Google Maps Api 3,我是一名PHP开发人员,我希望在我的应用程序上实现一个搜索功能,该功能包括关键字搜索和位置搜索,例如: “约克的水管工”、“伯明翰的电工”或“NE63的园丁” 因此,搜索字符串的结构是: "Electricians in Birmingham" |__________| |________| | | Keywords Location 我基本上需要做的是提取关键字和位置,其中位置可以是地名或部分邮政编码 我的问题是如何知道哪个字

我是一名PHP开发人员,我希望在我的应用程序上实现一个搜索功能,该功能包括关键字搜索和位置搜索,例如:

“约克的水管工”、“伯明翰的电工”或“NE63的园丁”

因此,搜索字符串的结构是:

"Electricians in Birmingham"
 |__________|    |________|
       |              |
    Keywords      Location
我基本上需要做的是提取关键字和位置,其中位置可以是地名或部分邮政编码

我的问题是如何知道哪个字符串是位置(考虑到停止词“in”可能丢失)

是否有一个地名检测库作为谷歌地图API的一部分,我可以利用

我计划使用的技术堆栈是:

  • PHP
  • 弹性搜索
  • 谷歌地图API

您可以使用类似于或来自军械调查的内容来创建英国邮政编码、城市、城镇、村庄、县的列表。然后在搜索字符串中从该列表中查找短语

然而,请注意,有超过(第一部分)和超过175万个完整邮政编码,还有数千个定居点不是唯一的(圣尼奥斯、丹顿、哈特菲尔德),一些城镇名称也有点模棱两可(三月、战役、舰队),而且没有明显的专有名词


如果你有一个强大的搜索技术,你当然可以做到这一点。不过,调整用户界面以包含一个单独的位置字段可能更简单,可以是基于半径的邮政编码,也可以是从地区到县到镇等的层次结构。

我参加聚会可能太迟了,但我想在这方面出两分钱。 我最近在尝试实现对我的平台的搜索时遇到了这个问题。我使用谷歌地理编码API(详细)实现了同样的功能

优点:

  • 您可以提供任何包含位置的搜索字符串,它会为您提供位置
  • 缺点:

  • 对搜索速度产生不利影响:在最坏的情况下,我发现增加搜索时间需要大约一秒钟的时间来响应(我实际上正是出于这个原因才打算离开这个位置)
  • 有时,即使没有位置,它也会检测到位置,从而导致错误的结果

  • 让我们假设像“”这样的搜索,这两个词可能是位置或关键字,您如何区分它们?您不能创建两个单独的输入吗?一个用于关键字,一个用于位置,然后在请求中合并这两个?