类SolrServer未更新

时间:2012-03-23 15:29:57

标签: solr

我将文档发布到SOLR服务器,每次提交一次大约5000个文档。在多次提交结束时,我查看SOLR管理面板,而不是280,000个文档,SOLR管理面板报告只有5000个文档。

看起来每次我调用提交时都会覆盖文档。然而,指数的规模正在扩大。

以下是我所指的API:  http://lucene.apache.org/solr/api/org/apache/solr/client/solrj/SolrServer.html#add%28java.util.Collection%29

以下是代码:

    private final SolrServer server; 
    this.server = new CommonsHttpSolrServer(getPropertyManager().getSolrMasterUrl());
    final Collection<UpdateResponse> responses = new ArrayList<UpdateResponse>(4);
    responses.add( server.add(solrDocuments) );
    responses.add( server.optimize() );
    responses.add( server.commit() );

每当有另外5000个文档的提交时,我看到SOLR中的索引以KB为单位增加,索引会增长。但是,SOLR管理面板报告只有5,000个文档,因此没有任何意义。

numDocs:5164

maxDoc:5164

版本:1332445599423

segmentCount:1

当前:是真的

hasDeletions:false

目录:org.apache.lucene.store.SimpleFSDirectory:org.apache.lucene.store.SimpleFSDirectory @ Z:\ jboss-soa-p-5 \ jboss-as \ server \ experimental \ solr \ data \ index lockFactory =org.apache.lucene.store.NativeFSLockFactory@8d921a

lastModified:2012-03-23T13:38:53.539Z

1 个答案:

答案 0 :(得分:0)

检查以确保每次发送的5000个文档都是唯一的。如果您每次都发送相同的文档集,Solr足够聪明,只需用新文档替换旧文档(如果其他字段不同),否则它将忽略添加文档的请求,因为它已经有匹配副本。

这是基于schema.xml文件中的<uniqueKey>设置完成的。因此,如果您的文档具有指定为uniqueKey的id字段并且您将它们编号为1 - 5000并且您继续将相同的文档集发送到Solr,则它将一直忽略添加集合的请求。