使用 Algolia 进行地理搜索

Geo searching with Algolia

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

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 中的数据 flow/data。