2017-02-24 90 views
0

我有類似這一項上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爲柱,並且其文本搜索的稱號。 followers包含遵循特定帖子的用戶的用戶ID。

我正在從會話中獲取當前登錄的userId。現在,當用戶進行一些文本搜索時,我想將這些帖子顯示在當前用戶所關注的頂部。

請使用ScoringProfiles或其他方法告訴AzureSearch可以實現嗎?

回答

1

ScoringProfile中的標籤提升確實如此。所有你需要做的是添加如下得分簡介:

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

然後,在查詢時,問題與參數的得分分佈的搜索查詢,以自定義排序:

文檔搜索=有些%20post & & scoringProfile =個性化& scoringParameter =跟隨:user_abc

希望這有助於。你可以在這裏讀更多關於它的內容。 https://azure.microsoft.com/en-us/blog/personalizing-search-results-announcing-tag-boosting-in-azure-search/

Nate