Оговорка: Я использую SolrNet для доступа к SolrCloud, и он еще не интегрируется с ZooKeeper. Для Java-клиентов это может быть намного проще.
Несмотря на то, что я читал here и here в отношении CompositeId Router
, я никогда не смог заставить его работать. Что @jay помогло мне фигурировать out - это способ использования «неявной» маршрутизации для достижения этого. При создании коллекции, как это (выйти из параметра numShards
):
http://localhost:8983/solr/admin/collections?action=CREATE&name=myCol&maxShardsPerNode=2&router.name=implicit&shards=shard1,shard2&router.field=shard
затем добавить поле к вашему schema.xml
имени «осколок» (соответствующий параметр router.field
), вы можете индексировать к определенному осколок просто путем добавления поле shard
для индексации документа и указания имени осколка. Во время запроса вы можете указать shards
для поиска - больше here (я смог просто указать имя осколка без конкретного адреса).
Я еще не тестировал это на производстве, но проверил несколько экземпляров VirtualBox с ZooKeeper, HAProxy и несколькими узлами Solr, и он делает именно то, что я ожидал. Исправления и комментарии приветствуются.
Вы когда-нибудь находили ответ на этот вопрос? Я борюсь с той же проблемой, используя Solr 5.1.0 в облачном режиме. – LandonC
@ LandonC Оказалось, что я живу со случайными осколками и множественной избыточности ... , если вы нашли решение, дайте мне знать :-) – TLJ
С помощью некоторых других людей у меня есть то, что я _believe_ является решением. Он работает в тестовом сценарии, насколько я знаю. Я опубликую ниже. – LandonC