0

我想根据特定属性(评级)对搜索结果进行排序。我只是想验证我的方法是否可行:

private func setupInstantSearchSettings() {
     singleIndexHitsInteractor.connectController(self)
     singleIndexHitsInteractor.connectSearcher(participationIndexSearcher)
      sortByConnector = .init(searcher: participationIndexSearcher, indicesNames: [ 
     "default","most_rated","recent"], selected: 0)
 }

我创建了原始索引的三个副本,并直接在仪表板上配置了 sortBy 属性。函数setupInstantSearchSettings在我的视图控制器中被调用一次。实际搜索是用另一种方法进行的

 private func searchMostRatedParticipationContents() {
        filterState[or: "groupName"].add(Filter.Facet(attribute: "challengeId", stringValue: challengeObject.id!))
        
        sortByConnector.selectedIndexName = "most_rated"
        participationIndexSearcher.connectFilterState(filterState)
        participationIndexSearcher.search()
   }

现在,我得到了结果,但不知何故,它们没有排序。我检查排序的唯一方法是打印出来

hitsSource!.getCurrentHits()

我想对 rating 属性进行降序排列,但它总是打印 rating 值为 0 的值。还有其他值更高的等级。

4

0 回答 0