Je cherche un index Solr avec SolrJ et essayer d'obtenir l'explication Lucene pour qu'il se connecter pour une utilisation ultérieure.Comment obtenir l'explication de Lucene pour un SolrDocument avec Solrj?
Le code va comme ceci:
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();
}
Je pensais que response.getEplainMap() contiendrait une carte avec la valeur comme response.getEplainMap() get (id), mais il semble que le explainmap. contient uniquement la clé null avec la valeur du dernier document trouvé.
Toute idée comment obtenir l'explication correcte?
Comme mentionné dans ma réponse les ids ont eu tort (lire: inexistante). Cependant, si j'avais lu votre réponse avant de comprendre le problème moi-même je l'aurais vu mon depuis la console de requête de débogage car je crois l'expliquer la sortie n'a pas le nom/id -attribut du tout comme dans votre post . Donc, d'une certaine manière en postant que vous avez résolu mon problème aussi :) – Timo