2012-03-23 2 views
0

Я отправляю документы на сервер SOLR, примерно 5000 документов за один раз за фиксацию. В конце нескольких коммитов я смотрю панель администратора SOLR, вместо того, чтобы быть 280 000 документов, панель администратора SOLR сообщает только о 5000 документах.Класс SolrServer не обновляется

Похоже, что каждый раз, когда я вызываю фиксацию, документы переписываются. Однако индексы растут в размерах.

Вот 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()); 

Я вижу индексы в Solr увеличение в КБ каждый раз, когда есть совершение другого 5000 документов, индексы растут. Однако административная панель SOLR сообщает только о 5000 документах, поэтому это не имеет никакого смысла.

numDocs: 5164

maxDoc: 5164

версия: 1332445599423

segmentCount: 1

ток: истинный

hasDeletions: ложные

каталог: орг. apache.lucene.store.SimpleFSDir ectory: org.apache.lucene.store.SimpleFSDirectory @ Z: \ jboss-soa-p-5 \ jboss-as \ server \ experimental \ solr \ data \ index [email protected]

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

ответ

0

Проверьте, чтобы убедиться, что 5000 документов вы отправляете каждый раз уникальны. Если вы отправляете один и тот же набор документов каждый раз, Solr достаточно умен, чтобы просто заменить старые документы на новые (если другие поля разные), в противном случае он просто проигнорирует запрос на добавление документа, поскольку он уже имеет сопоставив копия.

Это делается в соответствии с настройкой <uniqueKey> в файле schema.xml. Итак, если в ваших документах есть поле id, которое указано как уникальныйKey, и вы их число 1 - 5000, и вы продолжаете отправлять тот же набор документов в Solr, он просто будет игнорировать запросы на добавление наборов.