Как получить объяснение Lucene для SolrDocument с помощью Solrj?

Я ищу индекс Solr с помощью SolrJ и пытаюсь получить объяснение Lucene для записи его в журнал для дальнейшего использования.

Код выглядит следующим образом:

    SolrServer server = new CommonsHttpSolrServer("solr_url");
    SolrQuery solrquery = new SolrQuery();
    solrquery.set("fl", "score, id"); // id is a String field
    solrquery.set("rows", "1000");
    solrquery.set("debugQuery", "on");
    solrquery.setQuery("query words here");

    try {
        QueryResponse response = server.query(solrquery);
        SolrDocumentList docs = response.getResults();
        Iterator<SolrDocument> dociterator = docs.iterator();

        while (dociterator.hasNext())
        {
            SolrDocument doc = dociterator.next();
            String id = (String) doc.getFirstValue(idfield);
            Float relevance = (Float) doc.getFirstValue("score");
            String explanation = ???;
        }
    } catch (SolrServerException e) {
        e.printStackTrace();
    }

Я решил, что response.getEplainMap () будет содержать карту со значением вроде response.getEplainMap (). Get (id), но кажется, что карта объяснения содержит только нулевой ключ со значением последнего найденного документа.

Есть идеи, как получить правильное объяснение?

5
задан Pang 17 June 2015 в 04:56
поделиться