0

我在 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从会话中获取当前登录信息。现在,当用户进行一些文本搜索时,我想在当前用户关注的顶部显示这些帖子。

请判断这是否可以在 AzureSearch 中使用 ScoringProfiles 或其他任何方法实现?

4

1 回答 1

1

ScoringProfile 中的标签提升正是这样做的。您需要做的就是添加一个评分配置文件,如下所示:

{
  "scoringProfiles": [
  {
    "name": "personalized",
    "functions": [
    {
      "type": "tag",
      "boost": 2,
      "fieldName": "followers",
      "tag": { "tagsParameter": "follower" }
    }
    ]
  }
  ]
}

然后,在查询时,使用带有参数的评分配置文件发出搜索查询以自定义排名:

docs?search=some%20post&&scoringProfile=个性化&scoringParameter=follower:user_abc

希望这可以帮助。你可以在这里读更多关于它的内容。 https://azure.microsoft.com/en-us/blog/personalizing-search-results-announcing-tag-boosting-in-azure-search/

内特

于 2017-02-24T18:55:21.227 回答