gpt4 book ai didi

java - 如何使用 Solrj 获取 SolrDocument 的 Lucene 解释?

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:01 26 4
gpt4 key购买 nike

我正在使用 SolrJ 搜索 Solr 索引并尝试获取 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) 的映射,但 explainmap 似乎只包含键 null 和最后找到的文档的值。

关于如何获得正确解释的任何想法?

最佳答案

在我的案例中,Solr 索引本身存在错误。下面的代码现在可以工作了。

Map<String, String> explainmap = response.getExplainMap();
String explanation = explainmap.get(id);

当创建索引并遇到上述问题时,请确保 schema.xml 中确定的 id 字段(例如 <uniqueKey>id</uniqueKey>)包含正确的数据。在我的例子中,我在代码中使用的 id 字段与 Solr 认为的不一样,它不包含任何数据,因此 explainmap 只有一个键为 null 的字段。

关于java - 如何使用 Solrj 获取 SolrDocument 的 Lucene 解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com