根据 AzureSearch 中的特定参数对搜索结果进行优先排序。
Prioritize search results based on certain parameter in AzureSearch.
我在 AzureSearch 上有一个与此类似的索引:
"fields": [
{
"name": "key",
"type": "Edm.String",
"filterable": true,
},
{
"name": "title",
"type": "Edm.String",
"searchable": true
},
{
"name": "followers",
"type": "Collection(Edm.String)",
"filterable": true,
}
]
这里,title
是 Post 的标题及其可搜索的文本。 followers
包含关注特定 Post.
的用户的用户 ID
我正在从 session 获取当前登录 userId
。现在,当用户进行一些文本搜索时,我想在当前用户关注的顶部显示那些 Post。
请说明这是否可以在 AzureSearch 中使用 ScoringProfiles 或其他任何方式实现?
ScoringProfile 中的标签提升正是这样做的。您需要做的就是添加如下评分资料:
{
"scoringProfiles": [
{
"name": "personalized",
"functions": [
{
"type": "tag",
"boost": 2,
"fieldName": "followers",
"tag": { "tagsParameter": "follower" }
}
]
}
]
}
然后,在查询时,使用带有自定义排名参数的评分配置文件发出搜索查询:
docs?search=some%20post&&scoringProfile=个性化&scoringParameter=关注者:user_abc
希望这对您有所帮助。你可以在这里读更多关于它的内容。
https://azure.microsoft.com/en-us/blog/personalizing-search-results-announcing-tag-boosting-in-azure-search/
内特
我在 AzureSearch 上有一个与此类似的索引:
"fields": [
{
"name": "key",
"type": "Edm.String",
"filterable": true,
},
{
"name": "title",
"type": "Edm.String",
"searchable": true
},
{
"name": "followers",
"type": "Collection(Edm.String)",
"filterable": true,
}
]
这里,title
是 Post 的标题及其可搜索的文本。 followers
包含关注特定 Post.
我正在从 session 获取当前登录 userId
。现在,当用户进行一些文本搜索时,我想在当前用户关注的顶部显示那些 Post。
请说明这是否可以在 AzureSearch 中使用 ScoringProfiles 或其他任何方式实现?
ScoringProfile 中的标签提升正是这样做的。您需要做的就是添加如下评分资料:
{
"scoringProfiles": [
{
"name": "personalized",
"functions": [
{
"type": "tag",
"boost": 2,
"fieldName": "followers",
"tag": { "tagsParameter": "follower" }
}
]
}
]
}
然后,在查询时,使用带有自定义排名参数的评分配置文件发出搜索查询:
docs?search=some%20post&&scoringProfile=个性化&scoringParameter=关注者:user_abc
希望这对您有所帮助。你可以在这里读更多关于它的内容。 https://azure.microsoft.com/en-us/blog/personalizing-search-results-announcing-tag-boosting-in-azure-search/
内特