2014-02-04 4 views
1

У меня есть настройка solr с отсутствием документов. Моя проблема: во время совершения частичного изменения, видимого на интерфейсе, например. если в документах 2000 года будут установлены интерфейсы, будет отображаться только 2000 документов, через некоторое время 5k, 10k ... до завершения полной фиксации.solr - предотвратить изменения до полной фиксации

Я хочу, чтобы это поведение изменилось, изменение должно быть видимым только после полной фиксации, до завершения полной фиксации, solr должен использовать старый индекс/данные.

ответ

0

В вашей Solr (4) 's solrconfig.xml, есть (или может быть) раздел под названием Autocommit

<autoCommit> 
     <maxDocs>10000</maxDocs> <!-- maximum uncommited docs before autocommit triggered --> 
     <maxTime>15000</maxTime> <!-- maximum time (in MS) after adding a doc before an autocommit is triggered --> 
     <openSearcher>false</openSearcher> <!-- SOLR 4.0. Optionally don't open a searcher on hard commit. This is useful to minimize the size of transaction logs that keep track of uncommitted updates. --> 
    </autoCommit> 

Я прочитал ваш вопрос о том, что вы отправляете много документов, поэтому вы не можете хранить их в памяти и им необходимо передать их на диск. Но вы не хотите, чтобы они были видны, пока они не были проиндексированы.

Таким образом, вместо того, чтобы делать явное принятие каждых X документов, имеет Autocommit раздела, но убедитесь, что openSearcher является ложным. Таким образом, активный искатель будет указывать на исходную точку фиксации. Затем, когда вы все закончите, выполните полную ручную фиксацию. Затем изменения должны стать видимыми.

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

Смежные вопросы