2012-02-21 2 views
0

Я пытаюсь реализовать распределенный поиск Solr (нужно использовать только Solr 3.4), где индекс распространяется на нескольких машинах. С помощью осколка здесь я имею в виду папку с осколком, содержащую индекс, что ядро ​​solr настроено на поиск. Он настроен на карте параметров и отсутствует в файле solrconfig.xml. Таким образом, каждая машина будет иметь разные имена папки осколков.Solr распределенный поиск по разным осколкам + на разных машинах

Например:

host1: port1 -> осколок = shard1,

host2: port2 -> осколок = shard2,

host3: port3 -> осколок = shard3.

Названия осколков на каждой машине могут быть изменены динамически. Поэтому он не может быть настроен в любом xml. Использование параметра «осколки» в запросе: host: port/baseURL не помогает мне указать имя осколка для этой конкретной машины.

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

ответ

2

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

Как -

http://host1:port1/solr/shard1/select?shards=host2:port2/solr/shard2,host3:port3/solr/shard3&q=ipod+solr

например, http://localhost:8983/solr/shard1/select?shards=localhost:8984/solr/shard2,localhost:8985/solr/shard3&q=ipod+solr

+0

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

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