Я ищу индекс 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), но кажется, что карта объяснения содержит только нулевой ключ со значением последнего найденного документа.
Есть идеи, как получить правильное объяснение?