根据 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/

内特