关于 javascript:使用 Algolia 进行地理搜索

Geo searching with Algolia

我正在网络上使用 algolia 实现地理搜索。我的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var searchClient = algoliasearch(Algol_APP_ID, Algol_API_KEY);
var itemIndex = searchClient.initIndex('item');

function searchItems(keyword, lat, lng) {
  var prom;
  var searchObj = {
    query: keyword,
    aroundRadius: 200
  };

searchObj.aroundLatLngViaIP = true;

return itemIndex.search(searchObj)
    .then(function (content) {
      console.log(content);
    return content;
  })
}

如果我注释掉 searchObj.aroundLatLngViaIP = true;
它得到了项目,但是一旦我包含它,我就没有从 algolia 得到任何回报。我认为问题出在数据中,我没有教程中的 _geoloc 参数,但我在文档中没有看到 latlng 参数必须由那个参数。但是,如果有人可以确认这就是问题所在,有没有办法可以将 algolia 中的参数别名为该参数,而不是重写我的数据库中的所有数据以使用该参数?


确实使用 _geoloc 属性是使用 Algolia 获得地理定位功能的唯一方法。这在今天是不可配置的。

您不必重写数据库中的全部数据,如果您能够在生产流程/数据中这样做,您只能在 Algolia 中重写该数据。