Для ускорения поиска и отображения данных в Synergy - форм, файлов и документов - используются индексаторы. По умолчанию используется индексатор Lucene. При необходимости, если необходим быстрый поиск по большому объему данных, Lucene может быть заменен на Elasticsearch.
Конфигурирование индексаторов выполняется в соответствующих xml-файлах:
/opt/synergy/jboss/standalone/configuration/arta/luceneConfiguration.xml
/opt/synergy/jboss/standalone/configuration/arta/elasticConfiguration.xml
Длина текста для полного совпадения
Настройка exactStringLength
регулирует максимальную длину текста для поиска точного совпадения. Весь текст большей длины обрезается.
По умолчанию используется значение 100 символов.
Для изменения этого значения нужно в конфигурационный файл
индексатора добавить новую настройку вида
<exactStringLength>новое_количество_символов</exactStringLength>
.
Пример настройки для Elasticsearch:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.arta.kz/xml/ns/ai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.arta.kz/xml/ns/ai http://www.arta.kz/xml/ns/ai/index.xsd"> <!-- URL доступа к серверу Elasticseach --> <url>http://localhost:9200/</url> <exactStringLength>500</exactStringLength> <forms> <!-- ... --> </forms> <files> <!-- ... --> </files> <docs> <!-- ... --> </docs> </configuration>
Длина текста для сортировки
Настройка sortStringLength
регулирует максимальную длину текста для сравнения и сортировки строк. Весь текст большей длины обрезается.
По умолчанию используется значение 50 символов.
Для изменения этого значения нужно в конфигурационный файл
индексатора добавить новую настройку вида
<sortStringLength>новое_количество_символов</sortStringLength>
.
Пример настройки для Elasticsearch:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.arta.kz/xml/ns/ai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.arta.kz/xml/ns/ai http://www.arta.kz/xml/ns/ai/index.xsd"> <!-- URL доступа к серверу Elasticseach --> <url>http://localhost:9200/</url> <sortStringLength>300</sortStringLength> <forms> <!-- ... --> </forms> <files> <!-- ... --> </files> <docs> <!-- ... --> </docs> </configuration>
Для каждой из индексируемых сущностей - форм, файлов и
документов - репликацию в Elasticsearch можно настраивать
отдельно. Эта настройка выполняется с помощью секций
<shards-count>
и
<replicas-count>
в файле конфигурации
elasticConfiguration.xml
:
<shards-count>
регулирует
количество шардов. По умолчанию установлено значение 1,
изменять его не рекомендуется;
<replicas-count>
регулирует
количество реплик. Рекомендуется использовать значение
равное количеству n-1, где n - количество нод в кластере.
Если нод больше 4 - то n/2+1.
Пример файла конфигурации
elasticConfiguration.xml
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.arta.kz/xml/ns/ai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.arta.kz/xml/ns/ai http://www.arta.kz/xml/ns/ai/index.xsd"> <!-- ... --> <forms> <!-- ... --> <!-- Количество шардов. Рекомендуется использовать значение по-умолчанию --> <shards-count>1</shards-count> <!-- Количество Реплик. рекомендуется использовать значение равное количеству n-1 где n- количество нод в кластере. если нод больше 4 - то n/2+1 --> <replicas-count>1</replicas-count> <!-- ... --> </forms> <files> <!-- ... --> <shards-count>1</shards-count> <replicas-count>1</replicas-count> </files> <docs> <!-- ... --> <shards-count>1</shards-count> <replicas-count>1</replicas-count> </docs> </configuration>
Более подробную информацию о кластере Elasticsearch можно получить здесь:
https://www.elastic.co/guide/en/elasticsearch/guide/current/replica-shards.html
https://www.elastic.co/guide/en/elasticsearch/guide/current/distributed-cluster.html