Przeszukuję indeks Solr za pomocą SolrJ i próbuję uzyskać wyjaśnienie Lucene dla zalogowania się do dalszego użytku.Jak uzyskać wyjaśnienie Lucene dla SolrDocument z Solrj?
Kod wygląda tak:
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();
}
Pomyślałem, że response.getEplainMap() będzie zawierać mapę z wartością jak response.getEplainMap() get (id), ale wydaje się, że explainmap. zawiera tylko kluczowy null z wartością ostatniego znalezionego dokumentu.
Jakieś pomysły, jak uzyskać prawidłowe wyjaśnienie?
Jak wspomniano w mojej własnej odpowiedzi, identyfikatory były błędne (czytaj: nieistniejące). Jednakże, gdybym przeczytał twoją odpowiedź, zanim sam odkryłbym problem, zobaczyłabym to z konsoli do debugowania, ponieważ uważam, że wynik wyjaśniania nie miał nazwy/id -attribute w ogóle jak w twoim poście . Więc w pewnym sensie, umieszczając informację, że rozwiązałeś mój problem :) – Timo