使用 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
参数,但我在文档中的任何地方都看不到 lat
和 lng
参数必须由该参数封装。但是,如果有人可以确认,那就是问题所在,有没有一种方法可以将 algolia 中的参数别名为该参数,而不是重写我的数据库中的所有数据以使用该参数?
确实使用 _geoloc
属性 是使用 Algolia 进行地理定位功能的唯一方法。今天,这是不可配置的。
您不必重写数据库中的整个数据,如果您能够在生产中重写 Algolia 中的数据 flow/data。
我正在使用 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
参数,但我在文档中的任何地方都看不到 lat
和 lng
参数必须由该参数封装。但是,如果有人可以确认,那就是问题所在,有没有一种方法可以将 algolia 中的参数别名为该参数,而不是重写我的数据库中的所有数据以使用该参数?
确实使用 _geoloc
属性 是使用 Algolia 进行地理定位功能的唯一方法。今天,这是不可配置的。
您不必重写数据库中的整个数据,如果您能够在生产中重写 Algolia 中的数据 flow/data。