簡體   English   中英

如何使用JSON查詢Solr獲取“ numFound”?

[英]How to get “numFound” using JSON query for Solr?

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

結構為{"response":{"numFound":394 ... }} ,該結構已加載到您的data變量中。

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

..應該會給您您要的號碼。 hits名稱只是由各種庫(在您的情況下可能是pysolr)賦予相同的值。

您還可以使用console.log(data)在開發人員工具的控制台窗口中查看已解析的數據結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM