Javascript 在Jekyll搜索中限制搜索结果
我一直试图在我的网站中包含的搜索脚本中限制搜索结果,但没有成功 以下是原始脚本:Javascript 在Jekyll搜索中限制搜索结果,javascript,jquery,Javascript,Jquery,我一直试图在我的网站中包含的搜索脚本中限制搜索结果,但没有成功 以下是原始脚本: jQuery(函数(){ //使用要搜索的字段以及boost初始化lunr。 window.idx=lunr(函数(){ 此.field('id'); 此字段(“标题”); this.field('content',{boost:10}); 此字段(“类别”); }); //获取生成的search_data.json文件,以便lunr.js可以在本地进行搜索。 window.data=$.getJSON('/se
jQuery(函数(){
//使用要搜索的字段以及boost初始化lunr。
window.idx=lunr(函数(){
此.field('id');
此字段(“标题”);
this.field('content',{boost:10});
此字段(“类别”);
});
//获取生成的search_data.json文件,以便lunr.js可以在本地进行搜索。
window.data=$.getJSON('/search.json');
//等待数据加载并将其添加到lunr
window.data.then(函数(加载的数据){
$.each(加载的_数据、函数(索引、值){
window.idx.add(
$.extend({“id”:index},值)
);
});
});
//提交表单时发生的事件
$(“#站点搜索”)。提交(功能(事件){
event.preventDefault();
var query=$(“#搜索框”).val();//获取文本字段的值
var results=window.idx.search(query);//获取lunr以执行搜索
显示搜索结果(results);//将结果交给其他人显示
});
功能显示搜索结果(结果){
var$search_results=$(“#search_results”);
//等待数据加载
window.data.then(函数(加载的数据){
//有结果吗?
如果(结果长度){
$search_results.empty();//清除所有旧结果
//迭代结果
results.forEach(函数(结果){
变量项=加载的_数据[result.ref];
//为此结果生成一个HTML片段
var appendString='';
//将代码段添加到结果集合中。
$search\u results.append(appendString);
});
}否则{
//如果没有结果,请让用户知道。
$search_results.html(“未找到任何结果” ”;
}
});
}
});代码>您遇到了什么错误,您的for循环看起来很好
另一种方法是限制迭代结果的数量
results.slice(0, 5).forEach(function (result) {
// snip
})
替换已有结果的现有迭代。forEach
即使结果少于5个,这也会起作用,如果结果超过5个,则将采用前5个。非常感谢您的回复,Caio。在上面的代码中,我应该把这个数组#切片片段放在哪里?另外:我得到的错误是,在执行搜索时,结果根本没有显示,相反,它只会重定向到404页面。我已经更新了答案,试图解释在哪里使用切片调用。再次感谢Oliver。切片阵列工作得很有魅力。我很高兴它帮助解决了您的问题!也许可以考虑接受这个答案?