首页 > 解决方案 > 有条件的地理位置搜索

问题描述

我正在尝试使用 Algolia 进行求职。作业可以有一个物理位置(带有地理坐标),或者被标记为“远程”。

我可以使用aroundLatLngaroundRadius搜索地理围栏内的工作。我可以过滤remote:true远程工作。但是如何将这两个合并到一个搜索中?

例如,以下将不返回任何结果,因为当然,工作不会“远程”并且有物理位置,但据我所知,没有办法使地理围栏有条件。

{
  "filters": "remote:true",
  "aroundLatLng": "37.7860211,-122.4029726",
  "aroundRadius": "160000"
}

我曾考虑过运行多个搜索,但我没有看到任何类型的结果相关性分数可以让我以有意义的顺序合并它们。

我的地理围栏不需要使用半径,我可以做这样的事情,但当然 Algolia 不支持 AND 的 OR。有没有办法像这样格式化查询?

{
  "filters": "remote:true OR (lat > 36 AND lat < 38 AND lng > -121 AND lng < -124)"
}

如果 Algolia 无法做到这一点,是否还有其他具有此功能的服务或选项?

标签: elasticsearchalgolia

解决方案


推荐阅读