我在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
是帖子的标题及其文本可搜索。 followers
包含关注该特定帖子的用户的用户ID。
我从会话中获取当前登录的userId
。现在,当用户进行一些文本搜索时,我想在当前用户关注的顶部显示这些帖子。
请使用ScoringProfiles或其他任何内容判断AzureSearch中是否可以实现这一点?
答案 0 :(得分:1)
ScoringProfile中的标签提升正是如此。您需要做的就是添加评分档案,如下所示:
{
"scoringProfiles": [
{
"name": "personalized",
"functions": [
{
"type": "tag",
"boost": 2,
"fieldName": "followers",
"tag": { "tagsParameter": "follower" }
}
]
}
]
}
然后,在查询时,使用带有参数的评分配置文件发出搜索查询以自定义排名:
docs?search = some%20post&& scoringProfile = personalized& scoringParameter = follower:user_abc
希望这会有所帮助。你可以在这里读更多关于它的内容。 https://azure.microsoft.com/en-us/blog/personalizing-search-results-announcing-tag-boosting-in-azure-search/
内特