我只是想从一段javascript中的Solr查询中获取“numFound”数字。
目前,我输出的代码数量仅限于我指定的X行,以及X项目数。
我想要的是响应中的“numFound”值,并将其存储为我的javascript中的var。
在下面的示例中,它将是394。
{
"responseHeader":{
"zkConnected":true,
"status":0,
"QTime":31,
"params":{
"q":"names:\"Leo Varadkar\" AND region:\"ROI\""}},
"response":{"numFound":394,"start":0,"maxScore":11.911881,"docs":[
我不希望任何来自特定条目或类似内容的字段的信息。在我的python代码中,我可以通过“solr.search(query).hits
”之类的东西获得这样的数字。然而,我一直无法找到相应的东西。我试图猜测像“data.response.hits”之类的东西,但无济于事。我真的在黑暗中!
我一直无法找到有关如何执行此操作的明确文档,或者某人做同样事情的示例,尽管它似乎是Solr中整个查询点的一个重要方面。前50名结果对我没用。我正在处理成千上万的物品。我的困惑可能表明我没有理解整个事情的一些关键方面......但我不这么认为?
我想要的只是那个数字。当然有人知道如何得到它?我打赌这很简单。
我的javascript如下:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
function on_data(data) {
$('#results').empty();
var docs = data.response.docs;
$.each(docs, function(i, item) {
$('#results').prepend($('<div>' + item.name + '</div>'));
});
var hits = 'Found ' + data.response. + ' hits'
$('#hits').prepend('<div>' + hits + '</div>');
var total = 'Found ' + docs.length + ' results';
$('#results').prepend('<div>' + total + '</div>');
}
function on_search() {
var query = $('#query').val();
if (query.length == 0) {
return;
}
var url='http://localhost:8983/solr/articles/select?q=text:'+query+'&version=2.2&start=0&rows=10000&indent=on&wt=json&callback=?&json.wrf=on_data';
var urlB='http://localhost:8983/solr/articles/select?q=text:'+query+'&version=2.2&start=0&rows=50&indent=on&wt=json&callback=?&json.wrf=on_data';
$.getJSON(urlB);
}
function on_ready() {
$('#search').click(on_search);
/* Hook enter to search */
$('body').keypress(function(e) {
if (e.keyCode == '13') {
on_search();
}
});
}
$(document).ready(on_ready);
答案 0 :(得分:0)
结构为{"response":{"numFound":394 ... }}
,已加载到data
变量中。
var hits = 'Found ' + data.response.numFound + ' hits'
..应该为您提供您正在寻找的号码。 hits
名称只是由各种库(在您的情况下可能是pysolr)给出相同的值。
您还可以使用console.log(data)
查看开发人员工具中已解析的数据结构。控制台窗口。