Estoy buscando un índice de Solr con SolrJ y tratando de obtener la explicación de Lucene para iniciar sesión para un uso posterior.¿Cómo obtener la explicación de Lucene para SolrDocument con Solrj?
El código dice así:
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();
}
que pensé que response.getEplainMap() contendría un mapa con el valor como response.getEplainMap get() (id), pero parece que el explainmap. contiene solo la clave nula con el valor del último documento encontrado.
Alguna idea de cómo obtener la explicación correcta?
Como mencioné en mi propia respuesta, los identificadores eran incorrectos (léase: inexistente). Sin embargo, si hubiera leído su respuesta antes de resolver el problema yo mismo, lo habría visto desde la consola de consultas de depuración, ya que creo que el resultado de la explicación no tenía el nombre/id-atributo en absoluto como en su publicación . Entonces, de alguna manera, al publicar, resolviste mi problema también :) – Timo