SolrJ и автоматическая фиксация

Я добавляю документы в ядро ​​​​Solr 4.3 с помощью SolrJ API. Я заметил, что у меня есть автофиксация, установленная на 15 секунд в стандартном solrconfig, который я использую, как показано ниже.

 <autoCommit>
   <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
   <openSearcher>false</openSearcher>
 </autoCommit>

Насколько я понимаю, поскольку для автоматической фиксации установлено значение true, это означает, что экземпляр Solr будет автоматически фиксироваться каждые 15 секунд, поэтому мне не нужно будет выполнять явную фиксацию с использованием API SolrJ, как показано ниже, каждый раз, когда я добавляю документ в Solr , правильно ли я понимаю?

        httpSolrServer.add(doc1);
        httpSolrServer.commit();// Is this still needed ?

Заранее спасибо!


person user1965449    schedule 10.03.2014    source источник


Ответы (1)


Если у вас определена автоматическая фиксация, вам не нужна явная фиксация.

Однако в приведенном выше определении для openSearcher установлено значение false для (жесткой) фиксации. Это означает, что Solr зафиксирует, но не покажет изменения.

В примере с конфигурацией это работает, потому что есть также коммит autoSoftCommit с openSearcher, установленным в true (или true по умолчанию). Это заставит изменения действительно отображаться, но без дорогостоящей жесткой фиксации.

Вместе эти два раздела хорошо работают: вы быстро видите результаты, а затем периодически сохраняете все на диск. Но убедитесь, что у вас есть оба раздела, или вы снова открываете поисковик в том, что выше. Выполнение только одного из двух приведет к тому, что результаты никогда не будут отображаться, если вы также не сделаете явную фиксацию где-то еще.

person Alexandre Rafalovitch    schedule 10.03.2014
comment
Спасибо, я перестану делать явную фиксацию из SolrJ, в документации SolrJ ничего не упоминается об использовании преимуществ автоматической фиксации, во всех примерах есть вызов solrserver.commit(), который дорог и не нужен с конфигурацией solr по умолчанию OOB . - person user1965449; 10.03.2014