【发布时间】:2015-01-02 14:00:05
【问题描述】:
Solr AnalyticsQuery API 按与查询不匹配的文档返回分析。
我在 Solr 中有名为“文档”的核心。有一些字段,例如“id”、“url”、“text”、“domain”。 我也有 ResourceAnalyticsCollector 计算每个资源有多少文档。 资源分析结果示例如下:
资源:{
- example.com: 456
- example2.com: 123
- ...
}
我第一次发现问题是通过一个域进行查询,但分析返回的结果只有几个域。
例子:
Solr 查询:domain:example.com
此查询返回的文档数:1000(所有此文档属于 example.com)
分析结果:
资源:{
- example.com: 700
- example2.com: 100
- example3.com: 100
- example4.com: 100
}
我通过/select 搜索处理程序查找了所有文档,所有这些文档都属于example.com 域。
但是当我查看文档分析时,我发现有很多文档与查询不匹配。但是文件的数量是一样的。
这是我的分析模块:
public class ResourceAnalyticsCollector extends DelegatingCollector{
public ResourceAnalyticsCollector(ResponseBuilder rb, IndexSearcher searcher) {
this.rb = rb;
this.searcher = searcher;
}
@Override
public void collect(int docNum){
Document doc;
doc = searcher.doc(docNum);
//Output document id for logs
String docId = doc.get(AnalyticsConstants.ID_SOLR_FIELD);
System.out.println("Doc id = " + docId);
documentList.add(doc);
delegate.collect(docNum);
}
@Override
public void finish(){
rb.rsp.add(TOTAL_RESULT_FIELD, this.getAnalyticsContext(documentList));
}
我认为这是 Solr 的错误。但如果有人能帮我解决这个问题,那就太好了!
我已经创建了我的分析的迷你版,带有核心。文件名“Analytics_API_problem.rar”。 你可以通过这些link下载它
【问题讨论】:
标签: solr