Solr: принудительное принятие в модульном тесте, когда solr.IgnoreCommitOptimizeUpdateProcessorFactory в цепочке - PullRequest
0 голосов
/ 03 июня 2019

Я обновил свой updateRequestProcessorChain, чтобы включить solr.IgnoreCommitOptimizeUpdateProcessorFactory в мою конфигурацию Solr.Однако у меня возникли проблемы с выполнением моих текущих модульных тестов, за исключением следующего исключения:

java.lang.RuntimeException: Exception during query

Мой класс модульных тестов расширяет SolrTestCaseJ4 и вызывает assertU(commit()) в setup()метод, который из-за обновления конфигурации игнорирует фиксацию.Есть ли способ, которым я могу программно форсировать коммит за этот класс процессора?Я не могу удалить это для целей теста, так как тесты должны выполняться с тем же конфигом, что и live.Удаление assertU(commit()) не меняет его.

Solr v7.7.1

solrconfig.xml

<requestHandler name="/update" class="solr.UpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">myCoreProcessors</str>
  </lst>
</requestHandler>

<updateRequestProcessorChain name="myCoreProcessors">
  <processor class="solr.IgnoreCommitOptimizeUpdateProcessorFactory">
    <int name="statusCode">200</int>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.DistributedUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

setup ()

@Before
public void setup() throws Exception {
   super.setUp();

   initCore("my_core/conf/solrconfig.xml",
            "my_core/conf/schema.xml",
            "solr",
            "my_core");

   server = new EmbeddedSolrServer(h.getCoreContainer(),
                                   h.getCore().getName());
   addDoc(loadFile("SampleData.json"), "");
   assertU(commit());
}
...