是否可以随机排序,并查询字段是否存在?
Is it possible to sort randomly, and to query on field if it exists?
在 Algolia 上,我正在尝试随机排序...这可能吗?
我也尝试查询一个字段是否不存在。
使用 facets
我尝试了类似 my_attribut:null
的方法......但我不确定是否可行。
你能帮帮我吗?
谢谢
随机排序
尽管在排名公式中采用随机顺序可能有意义,但它与引擎的构建方式不兼容。通过专注于速度 + 针对性,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;
}
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
正整数) .
在 Algolia 上,我正在尝试随机排序...这可能吗?
我也尝试查询一个字段是否不存在。
使用 facets
我尝试了类似 my_attribut:null
的方法......但我不确定是否可行。
你能帮帮我吗?
谢谢
随机排序
尽管在排名公式中采用随机顺序可能有意义,但它与引擎的构建方式不兼容。通过专注于速度 + 针对性,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; }
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
正整数) .