Что такое Solr? Solr - это поисковая платформа или поисковый сервер, продукт Apache, он базируется на другом продукте Apache Lucene. Он является новейшей технологией поиска и индексирования. Это база данных документов, которая предлагает поддержку SQL и выполняет ее распределенным образом. Основные преимущества Solr в том, что его можно развернуть в виде отдельного компонента, также Solr предоставляет возможности по масштабированию, а именно создание реплик (replication), возможности по шардингу. Еще у платформы есть свой web интерфейс, где мы можем зайти посмотреть через браузер размеры и параметры коллекции, сколько памяти употребляется, запустить какие то запросы. Помимо этого Solr предоставляет кеширование ответов от сервера для быстродействия.
Прежде чем начать изучение темы необходимо скачать последнюю версию Apache Solr. Лучше всего это сделать с официального сайта https:://lucene.apache.org/solr/downloads.html. Далее выбрать необходимую версию и скачать архив (убедитесь что вы загрузили правильный пакет без приставки src в названии архива)

Запуск Solr в режиме SolrCloud
Что такое SolrCloud?

Apache Solr включает в себя возможность создания кластера серверов Solr. Это необходимо прежде всего для отказоустойчивости и высокой доступности. Такой режим использования Solr и называется SolrCloud.

 Что такое кластер серверов?

Кластер серверов - это объединенные в группу определенное количество серверов (двухузловой кластер - с двух серверов), которые образуют единый ресурс. Это позволяет увеличить надежность и производительность системы.

В данном примере мы запустим Solr в виде двухузлового кластера (оба узла на одном компьютере) и создадим коллекцию во время запуска.
Итак, после скачивания распаковываем архив и заходим в папку проекта Solr (структуру папок и за что они отвечают рассмотрим в следующей статье).
Находясь в данной директории заходим в консоль и запускаем:
для Unix или MacOS
bin/solr start -e cloud
для Windows
bin/solr.cmd start -e cloud
Данная команда запустит интерактивный сеанс, который запустит два сервера Solr на вашем компьютере.В консоли мы видим следующее:
solr-7.3.0:$ ./bin/solr start -e cloud

Welcome to the SolrCloud example!

This interactive session will help you launch a SolrCloud cluster on your local workstation.
To begin, how many Solr nodes would you like to run in your local cluster? (specify 1-4 nodes) [2]:
Первый вопрос на который нам нужно ответить, сколько узлов(серверов) мы хотим запустить. Обратите внимание на конец последней строки, где указано [2] – это число узлов по умолчанию. Два это наиболее оптимальный вариант, поэтому просто нажимаем Enter. Далее мы увидим следующее:
Ok, let's start up 2 Solr nodes for your example SolrCloud cluster.
Please enter the port for node1 [8983]:
Здесь необходимо указать порт на котором будет работать первый сервер.  Если вы уверены что на вашем компьютере ничего не работает на порту 8983 тогда просто нажимаем Enter. Если же что то и будет работать вам будет предложен другой порт.
Тоже самое нужно сделать и для второй ноды – указать на каком порту он будет работать.
Please enter the port for node2 [7574]:
После этого Solr устанавливается и начинает работать на этих двух узлах. В консоли мы видим следующее:
Starting up 2 Solr nodes for your example SolrCloud cluster.

Creating Solr home directory /solr-7.3.0/example/cloud/node1/solr
Cloning /solr-7.3.0/example/cloud/node1 into
   /solr-7.3.0/example/cloud/node2

Starting up Solr on port 8983 using command:
"bin/solr" start -cloud -p 8983 -s "example/cloud/node1/solr"

Waiting up to 180 seconds to see Solr running on port 8983 [\]
Started Solr server on port 8983 (pid=34942). Happy searching!


Starting up Solr on port 7574 using command:
"bin/solr" start -cloud -p 7574 -s "example/cloud/node2/solr" -z localhost:9983

Waiting up to 180 seconds to see Solr running on port 7574 [\]
Started Solr server on port 7574 (pid=35036). Happy searching!

INFO  - 2017-07-27 12:28:02.835; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready
Поскольку мы запускаем в режиме SolrCloud и не определяем какие либо сведения о внешнем кластере ZooKeeper, Solr запускает свой собственный ZooKeeper и подключает к нему оба узла.
Что такое ZooKeeper?

ZooKeeper - также известен как Apache ZooKeeper . Система, используемая SolrCloud для отслеживания конфигурационных файлов и имен узлов для кластера. Простыми словами, ZooKeeper используется в качестве централизированного хранилища конфигурационных файлов для кластера.

После завершения загрузки вам будет предложено создать коллекцию, которая будет использоваться для индексирования данных.
Now let's create a new collection for indexing documents in your 2-node cluster.
Please provide a name for your new collection: [gettingstarted]
Назовем коллекцию techproducts, так как в следующей статьи мы будем индексировать некоторые примеры данных, которые уже есть в проекте в вашей директории solr, которые называются techproducts. Соответственно вводим в командной строке techproducts и нажимаем Enter.
Далее нас спрашивают  на сколько шардов мы хотим разбить наш индекс на два узла.
How many shards would you like to split techproducts into? [2]
Что такое shard?

Shard в SolrCloud – логическое разделение одной коллекции. 2 означает что мы разделим индекс между двумя серверами. Этот вариант нам подходит поэтому нажимаем Enter

Что такое коллекция?

Коллекция в Solr – один или больше документов сгрупированных в один логический индекс с использованием единой конфигурации и схемы.

Далее мы видим следующее:
How many replicas per shard would you like to create? [2]
Что такое реплика?

Реплика - это копия индекса, который используется для восстановления после сбоя.

Значение по умолчанию «2» отлично подходит нам для начала, так что нажимаем Enter.
Дальше нам предлагают выбрать конфигурацию для нашей коллекции
Please choose a configuration for the techproducts collection, available options are:
_default or sample_techproducts_configs [_default]
Коллекция должна иметь набора конфигурационных файлов (configSet), который, как минимум, включает в себя два основных файла конфигурации для Solr: файл схемы (с именем managed-schema или schema.xml) и solrconfig.xml.
Solr имеет два набора называемых configSet, по умолчанию уже готовых в вашем проекте Solr распакованного с архива.
Это _default вариант с базовой конфигурацией файлов, но обратите внимание, что есть тот, чье имя включает в себя «techproducts», так же, как мы назвали нашу коллекцию. Этот configSet специально разработан для тестирования выборочных данных, которые мы будем использовать, поэтому введите sample_techproducts_configs в командной строке и нажмите Enter.
На этом этапе Solr создаст коллекцию.
Uploading /solr-7.3.0/server/solr/configsets/_default/conf for config techproducts to ZooKeeper at localhost:9983

Connecting to ZooKeeper at localhost:9983 ...
INFO  - 2017-07-27 12:48:59.289; org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider; Cluster at localhost:9983 ready
Uploading /solr-7.3.0/server/solr/configsets/sample_techproducts_configs/conf for config techproducts to ZooKeeper at localhost:9983

Creating new collection 'techproducts' using command:
http://localhost:8983/solr/admin/collections?action=CREATE&name=techproducts&numShards=2&replicationFactor=2&maxShardsPerNode=2&collection.configName=techproducts

{
  "responseHeader":{
    "status":0,
    "QTime":5460},
  "success":{
    "192.168.0.110:7574_solr":{
      "responseHeader":{
        "status":0,
        "QTime":4056},
      "core":"techproducts_shard1_replica_n1"},
    "192.168.0.110:8983_solr":{
      "responseHeader":{
        "status":0,
        "QTime":4056},
      "core":"techproducts_shard2_replica_n2"}}}

Enabling auto soft-commits with maxTime 3 secs using the Config API

POSTing request to Config API: http://localhost:8983/solr/techproducts/config
{"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}}
Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000

SolrCloud example running, please visit: http://localhost:8983/solr
Поздравления! Solr готов к работе!
Вы можете видеть, что Solr запущен, запустив интерфейс пользователя Solr Admin в вашем веб-браузере: http://localhost:8983/solr/. Это основная отправная точка для введения Solr.
В следующей статье мы будем разбирать админ панель Solr, индексировать данные, отправим первые поисковые запросы и много другое.