是否可以随机排序,并查询字段是否存在?

时间:2015-10-14 10:56:03

标签: javascript algolia

在Algolia上,我试图随机排序......是否可能? 我还尝试查询字段是否不存在 使用inst_id,我尝试了类似facets的内容......但我不确定它是否可行。

你能帮助我吗?

感谢

1 个答案:

答案 0 :(得分:2)

随机排序顺序

即使在排名公式中有一个随机顺序可能是有意义的,但它与引擎的构建方式不兼容。通过关注速度+针对性,Algolia的引擎做了一些权衡,因为它在索引时预先计算了大量信息,因此无法在每个查询中随机化。此外,它会破坏任何分页。

但是,您可以在收到结果后随机播放,这样可以让您获得正确的分页。

使用此问题的shuffle方法How can I shuffle an array?

function shuffle (o){
  for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
  return o;
}

使用JavaScript client

index.search('something', function searchDone(err, content) {
  content.hits = shuffle(content.hits);
  // Use them
});

使用JavaScript helper

helper.on('result', function (data){
  data.hits = shuffle(data.hits);
  // Use them
});

查询不存在的属性

使用Algolia进行此类操作的唯一方法是将您认为为null的值(例如null字符串或-1作为正整数)