我正在使用algoliasearch和algoliasearchHelper库使用algolia网站上的hogan模板示例构建即时搜索界面。
我遇到了排序数字方面的问题。我正在使用通过composer安装的algoliasearch-client-php填充索引。我将一个整数传递给索引对象,如下所示:
"cost_to_build" => (int) $project->data['approximate_cost'],
但是在索引中,我得到了类似的东西:
cost_to_build: "15.00"
然后产生一个方面顺序,如:
15,25,3,5,6。
甚至thoguh {sortBy: ['name:asc']}
。如果我手动将所有索引值更改为字符串中的整数(太多而不是手动更新,加上我们定期更新),则排序可以根据需要进行。
任何人都有任何提示吗?
谢谢!
答案 0 :(得分:1)
值从整数转换为字符串的事实本身就是令人惊讶的,我不知道为什么会发生这种情况。
但是,如果没有解决根本原因,仍然有一个简单的解决方案。 sortBy
参数为also able to accept a comparison function,因此您可以将这些值转换为前端而不是后端的整数。
这些方面应该有效:
helper.on('results', function(content){
//get values ordered only by count ascending using a function
content.getFacetValues('cost_to_build', {
sortBy: function(a, b) {
return parseInt(a.name, 10) - parseInt(b.name, 10);
}
});
});