2016-11-04 1 views
0

Я использую осколочный запрос, чтобы получить ответ от двух разных ядер на двух разных системах: один из которых говорит гибрид, а другой - от OTMM. Теперь, если мой сервер OTMM отключен, запрос не возвращает результат от другого solr, который встал. он дает ошибку, как:Will Shard возвращает результат из одного ядра, если другое ядро ​​не работает?

morg.apache.solr.client.solrj.impl.HttpSolrClient $ RemoteSolrException: Ошибка с сервера на .XXXX.net: 8983/Solr/otmm INFO | jvm 1 | главная | 2016/11/04 03: 24: 55.476 | at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod (HttpSolrClient.java:560)

Нужно ли мне настраивать что угодно, чтобы получить результат с одного сервера, если другой отключен. Я использую ниже код после добавления fqs в param:

response = solr.query (params);

+0

Atleast одна копия осколка должна быть активной. скажем, shard1 находится в node1 и node2, один из них - лидерский узел. если оба узла1 и узел2 опущены, вы не можете получить результаты этого осколка. – vinod

ответ

0

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

Если вы не хотите создавать реплики и вместо этого хотите, чтобы ваш оставшийся осколок служил запросу, вы можете добавить параметр distrib=false в свой запрос и указать правильный адрес осколка в параметре shard.

Такой запрос будет выглядеть примерно так:

/myhandler?q=something&distrib=false&shards=othershard:8888/solr/core

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