2017-02-16 17 views
0

Как я могу оценивать записи в algolia на основе заданного значения? Значение динамическое, основанное на IP-адресе пользователя.Algolia: как ранжировать поиск по значению?

Я хочу SC государство, чтобы показать сначала в списке, как я могу это сделать?

, например, у меня есть записи

[ 
{ 
    "category":"Emergency Department", 
    "address": {"state": "SC"} 
    ...... 
}, 
{ 
    "category":"Emergency Department", 
    "address": {"state": "NC"} 
    ...... 
}, 
{ 
    "category":"Emergency Department", 
    "address": {"state": "NC"}, 
    ...... 
}, 
{ 
    "category":"Radiology", 
    "address": {"state": "WV"} 
    ...... 
}, 
{ 
    "category":"PROVIDENCE HOSPITAL", 
    "address": {"state": "TN"} 
    ...... 
}, 
{ 
    "category":"PROVIDENCE HOSPITAL", 
    "address": {"state": "TN"} 
    ...... 
}, 
] 

я написал свой код поиска, как этот

algoliaIndex.search({ 
    query: 'Emergency Department' +' '+ 'SC', 
}, function(err, hits) { 
    console.log(hits.hits); 
}); 

мои настройки индекса

[ 
'searchableAttributes' => [ 
    'general_name', 
    'name', 
    'category', 
    'address.city', 
    'address.state', 
    'address.zip_code', 
    ], 
'customRanking' => [ 
    "desc(address.state)", 
    "desc(general_name)" 
    ], 
] 

ответ

1

Вы можете использовать функцию гео-поиска сортировать результаты в зависимости от местоположения пользователя. Вот руководство для его реализации: https://www.algolia.com/doc/guides/geo-search/geo-search-overview/#filter-and-sort-around-a-location

API-интерфейс позволяет напрямую предоставить IP и он будет автоматически преобразован в соответствующие координаты: https://www.algolia.com/doc/guides/geo-search/geo-search-overview/#by-looking-at-the-ip-address

Чтобы добиться этого, вам необходимо преобразовать ваш адрес .state в координаты lat/lng, чтобы заставить его работать. Вы можете посмотреть этот поток SO, чтобы найти базу данных, чтобы сделать это: Latitude and Longitude based on Zip Code