我想根据特定属性(评级)对搜索结果进行排序。我只是想验证我的方法是否可行:
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 的值。还有其他值更高的等级。