如何使用 JSON 查询 Solr 获取 "numFound"?
How to get "numFound" using JSON query for Solr?
我只是想从 javascript.
的一段 Solr 查询中获取 "numFound" 数字
目前我的代码输出响应的数量,仅限于我指定的 X 行,以及 X 个项目。
我想要的是响应中的 "numFound" 值,并将其作为 var 存储在我的 javascript.
在下面的示例中,它将是 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);
结构是 {"response":{"numFound":394 ... }}
,它被加载到您的 data
变量中。
var hits = 'Found ' + data.response.numFound + ' hits'
.. 应该会给你你要找的号码。 hits
名称只是由各种库(在您的情况下可能是 pysolr)赋予相同的值。
您还可以使用 console.log(data)
在您的开发者工具控制台中查看解析后的数据结构 window。
我只是想从 javascript.
的一段 Solr 查询中获取 "numFound" 数字目前我的代码输出响应的数量,仅限于我指定的 X 行,以及 X 个项目。
我想要的是响应中的 "numFound" 值,并将其作为 var 存储在我的 javascript.
在下面的示例中,它将是 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);
结构是 {"response":{"numFound":394 ... }}
,它被加载到您的 data
变量中。
var hits = 'Found ' + data.response.numFound + ' hits'
.. 应该会给你你要找的号码。 hits
名称只是由各种库(在您的情况下可能是 pysolr)赋予相同的值。
您还可以使用 console.log(data)
在您的开发者工具控制台中查看解析后的数据结构 window。