gpt4 book ai didi

javascript - Algolia:如何根据值对搜索进行排名?

转载 作者:行者123 更新时间:2023-12-03 04:59:59 25 4
gpt4 key购买 nike

如何根据给定值对我的算法记录进行排名?该值是根据用户的 IP 位置动态变化的。

我希望 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)"
],
]

最佳答案

您可以使用地理搜索功能根据用户的位置对结果进行排序。这是实现它的指南: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

要实现此目的,您需要将您的 address.state 字段转换为纬度/经度坐标才能使其正常工作。你可以看看这个SO线程来找到一个数据库来做到这一点:Latitude and Longitude based on Zip Code

关于javascript - Algolia:如何根据值对搜索进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42268978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com