如何使用Solr的JSON查询获取“numFound”?

时间:2018-04-03 18:09:50

标签: javascript json solr response

我只是想从一段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);

1 个答案:

答案 0 :(得分:0)

结构为{"response":{"numFound":394 ... }},已加载到data变量中。

var hits = 'Found ' + data.response.numFound + ' hits'

..应该为您提供您正在寻找的号码。 hits名称只是由各种库(在您的情况下可能是pysolr)给出相同的值。

您还可以使用console.log(data)查看开发人员工具中已解析的数据结构。控制台窗口。