Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| system:elasticsearch [2017/09/03 20:27] – [_search] mirocow | system:elasticsearch [2019/07/15 19:12] (текущий) – [Примеры] mirocow | ||
|---|---|---|---|
| Строка 3: | Строка 3: | ||
| ====== Elasticsearch - поисковая система ====== | ====== Elasticsearch - поисковая система ====== | ||
| - | ===== Устанока ===== | + | ===== Документация |
| - | **nano ~/ | + | |
| - | <code bash> | + | |
| - | #!/usr/bin/sh | + | * https://www.elastic.co/guide/ |
| + | ===== Установка ===== | ||
| - | VERSION=2.4.0 | + | * [[: |
| + | * [[: | ||
| - | apt-get install openjdk-8-jdk | ||
| - | rm / | ||
| - | ln -s / | ||
| - | |||
| - | export JAVA_HOME=/ | ||
| - | export PATH=$JAVA_HOME/ | ||
| - | |||
| - | if [ ! -f elasticsearch-$VERSION.deb ]; then | ||
| - | wget https:// | ||
| - | fi | ||
| - | |||
| - | sudo dpkg -i elasticsearch-$VERSION.deb | ||
| - | |||
| - | # be sure you add " | ||
| - | |||
| - | # start script | ||
| - | sudo / | ||
| - | |||
| - | if [ -f / | ||
| - | rm / | ||
| - | fi | ||
| - | |||
| - | sudo ln -s / | ||
| - | |||
| - | # ------------------------------------------------------------------------------------ | ||
| - | |||
| - | # if you want to remove it: | ||
| - | #sudo dpkg -r elasticsearch | ||
| - | |||
| - | # binaries & plugin | ||
| - | #/ | ||
| - | |||
| - | # log dir | ||
| - | #/ | ||
| - | |||
| - | # data dir | ||
| - | #/ | ||
| - | |||
| - | # config dir | ||
| - | #/ | ||
| - | |||
| - | # prepare ElasticSearch UI | ||
| - | #sudo apt-get install apache2 | ||
| - | #sudo mkdir /var/www/ui | ||
| - | #sudo chown -R ubuntu.www-data /var/www | ||
| - | # now copy ES-HEAD to /var/www/ui | ||
| - | </ | ||
| ==== Установка и настройка Elasticsearch ==== | ==== Установка и настройка Elasticsearch ==== | ||
| Строка 73: | Строка 28: | ||
| <note important> | <note important> | ||
| - | [[https:// | + | nano /etc/ |
| - | + | < | |
| + | -Xms2g | ||
| + | -Xmx2g | ||
| + | </ | ||
| ===== Проверка работоспособности сервера ===== | ===== Проверка работоспособности сервера ===== | ||
| Строка 89: | Строка 46: | ||
| </ | </ | ||
| - | ===== Создание дампа / Dump create | + | ===== Статьи / Документация / Примеры индексов / Примеры запросов |
| - | * English: https:// | + | ==== Документация ==== |
| - | <note important> | + | === Уроки |
| - | nano /usr/local/etc/ | + | * [[https://codedzen.ru/elasticsearch-vvedeniye-1-1-osnovnyye-ponyatiya|Elasticsearch Введение — 1.1 Основные понятия]] |
| - | <code bash> | + | * [[https:// |
| - | path.repo: ["/usr/local/var/ | + | * [[https:// |
| - | </code> | + | * [[https:// |
| - | </note> | + | * [[https:// |
| + | * [[https://codedzen.ru/elasticsearch-urok-3-2-raznitsa-mezhdu-polnotekstov/ | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | ==== Регистрация ==== | + | === Статьи / Дискуссии === |
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | <code bash> | ||
| - | $ curl -XPUT ' | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | " | ||
| - | } | ||
| - | }' | ||
| - | </ | ||
| - | * где: | ||
| - | * backup - название репозитория | ||
| - | * / | ||
| - | ==== Проверка регистрации ==== | + | ==== Индексы ==== |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Проверка целостности ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | {" | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Создание snapshot / Backup ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPUT " | + | |
| - | </ | + | |
| - | + | ||
| - | Где my_index является существующим индексом. | + | |
| - | + | ||
| - | Проверить наличие инднеса можно командой | + | |
| - | <code bash> | + | |
| - | $ curl --silent -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Удаление регистрации репозитория ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XDELETE ' | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Восстановление / Restore ===== | + | |
| - | + | ||
| - | * English: https:// | + | |
| - | + | ||
| - | + | ||
| - | ==== Настройка ==== | + | |
| - | + | ||
| - | Если ранее небыл зарегистрирован. | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPUT ' | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | * где: | + | |
| - | * backup - название репозитория | + | |
| - | * / | + | |
| - | + | ||
| - | ==== Проверка ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST http:// | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Восстановление ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST http:// | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Запрос поиска ===== | + | |
| - | + | ||
| - | ==== Способы запроса ==== | + | |
| - | + | ||
| - | * [[system: | + | |
| - | + | ||
| - | === GET === | + | |
| - | + | ||
| - | + | ||
| - | Вывод всех документов из индекса | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET ' | + | |
| - | </ | + | |
| - | + | ||
| - | === REST === | + | |
| - | + | ||
| - | + | ||
| - | Вывод всех документов из индекса | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | == Доступные параметры для REST запросов == | + | |
| - | + | ||
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | }' | + | |
| - | + | ||
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | }' | + | |
| - | + | ||
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { " | + | |
| - | ], | + | |
| - | " | + | |
| - | { " | + | |
| - | ] | + | |
| - | } | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | === Поиск по регулярным выражениям === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET ' | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ], | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | [[https:// | + | |
| - | ==== Примеры запросов / Query DSL ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET http:// | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | * где: | + | |
| - | * 1vse - название БД | + | |
| - | * product.title - название таблицы | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Создание индексов ===== | + | |
| - | + | ||
| - | Данная операция создаст инжекс test | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPUT " | + | |
| - | { | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Получить список созданых индексов === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl --silent -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code bash> | + | |
| - | yellow open 1vse 5 1 147785 0 197.3mb 197.3mb | + | |
| - | yellow open 1vse_logs 5 1 439914 0 | + | |
| - | </ | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl --silent -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code bash> | + | |
| - | health status index pri rep docs.count docs.deleted store.size pri.store.size | + | |
| - | yellow open | + | |
| - | yellow open | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Фильтры ==== | + | |
| - | + | ||
| - | === Фильтр worddelimiter === | + | |
| - | + | ||
| - | Фильтр worddelimiter разбивает слова на несколько частей. Небольшой пример: | + | |
| - | + | ||
| - | Примеры: | + | |
| - | <code json> | + | |
| - | </ | + | |
| - | + | ||
| - | === Фильтр stopwords === | + | |
| - | + | ||
| - | Фильтр stopwords состоит из списка слов запрещенных к индексированию. Например он исключает такие слова, как “and”, “a”, “the”, “to” и т.д. Конечно этот список уникален для каждого языка, но существует довольно много заготовок, | + | |
| - | + | ||
| - | Примеры: | + | |
| - | <code json> | + | |
| - | </ | + | |
| - | + | ||
| - | === Фильтр snowball === | + | |
| - | + | ||
| - | Фильтр snowball используется для группировки слов по их основе. Фильтр применяет набор правил для правильного определения основы слова. Это означает, | + | |
| - | + | ||
| - | Примеры: | + | |
| - | <code json> | + | |
| - | </ | + | |
| - | + | ||
| - | === Фильтр elison === | + | |
| - | + | ||
| - | Фильтр elison имеет большее значения для некоторых языков (например французский) и не так важен для других (например английский). Он исключает маловажные слова перед индексированием, | + | |
| - | + | ||
| - | Примеры: | + | |
| - | <code json> | + | |
| - | </ | + | |
| - | + | ||
| - | === Фильтр lowercase === | + | |
| - | + | ||
| - | + | ||
| - | === Фильтр asciifolding === | + | |
| - | + | ||
| - | Заменяет все Unicode символы, | + | |
| - | + | ||
| - | === Лексеры === | + | |
| - | + | ||
| - | == nGram == | + | |
| - | + | ||
| - | Роль лексера nGram очень высока. Например, | + | |
| - | + | ||
| - | == Пример 1 == | + | |
| - | + | ||
| - | " | + | |
| - | " | + | |
| - | + | ||
| - | Результат: | + | |
| - | fu, fun, un, unn, nn, nny, po, pon, on, ony, ny | + | |
| - | 2-ой пример с лучшей настройкой: | + | |
| - | + | ||
| - | == Пример 2 == | + | |
| - | + | ||
| - | " | + | |
| - | " | + | |
| - | + | ||
| - | Результат: | + | |
| - | fun, funn, funny, unn, unny, nny, pon, pony, ony | + | |
| - | + | ||
| - | + | ||
| - | ==== Анализаторы ==== | + | |
| - | + | ||
| - | По умолчанию в Eldsticseach включен регистрозависимый анализатор поиска. Для его отключения используем ниже следующие настройки в конфигурационом файле elasticsearch.yml | + | |
| - | + | ||
| - | <code json> | + | |
| - | settings: | + | |
| - | index: | + | |
| - | analysis: | + | |
| - | analyzer: | + | |
| - | string_lowercase: | + | |
| - | tokenizer: keyword | + | |
| - | filter: lowercase | + | |
| - | </ | + | |
| - | ==== Мапинг ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Примеры индексов ==== | + | |
| - | + | ||
| - | <code yaml> | + | |
| - | settings: | + | |
| - | index: | + | |
| - | analysis: | + | |
| - | analyzer: | + | |
| - | app_analyzer: | + | |
| - | type: custom | + | |
| - | tokenizer: nGram | + | |
| - | filter | + | |
| - | app_search_analyzer: | + | |
| - | type: custom | + | |
| - | tokenizer: standard | + | |
| - | filter | + | |
| - | tokenizer: | + | |
| - | nGram: | + | |
| - | type: " | + | |
| - | min_gram: 2 | + | |
| - | max_gram: 20 | + | |
| - | filter: | + | |
| - | snowball: | + | |
| - | type: | + | |
| - | language: English | + | |
| - | app_ngram: | + | |
| - | type: " | + | |
| - | min_gram: 2 | + | |
| - | max_gram: 20 | + | |
| - | worddelimiter : | + | |
| - | type: word_delimiter | + | |
| - | stopwords: | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | </ | + | |
| - | + | ||
| - | * https:// | + | |
| - | + | ||
| - | ===== Работа с документом ===== | + | |
| - | + | ||
| - | ==== Подокументно ==== | + | |
| - | + | ||
| - | === Получение документа === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Добавление документа / Заполенение индекса === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPUT " | + | |
| - | { | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Обновление документа === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Частичное обновление документа === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPUT " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Обновление документа с учетом параметров === | + | |
| - | + | ||
| - | == > v 2.3 == | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }{ | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | == v 2.3 > == | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }, | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | }, | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | === Получение документа из индекса по ID === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XGET " | + | |
| - | </ | + | |
| - | + | ||
| - | ответ от elasticsearch | + | |
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | === Удаление документа из индекса === | + | |
| - | + | ||
| - | Удаление по индексу | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XDELETE ' | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | Мы также имеем возможность удалить несколько документов совпавших с условием запроса. Данный пример показывает как удалить все документы из индекса customers, содержащие «John»: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XDELETE ' | + | |
| - | { | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Работа с частичными данными документа ==== | + | |
| - | + | ||
| - | === Настройки elasticsearch.yml === | + | |
| - | + | ||
| - | script.update: | + | |
| - | script.mapping: | + | |
| - | script.engine.groovy.file.aggs: | + | |
| - | script.engine.groovy.file.mapping: | + | |
| - | script.engine.groovy.file.search: | + | |
| - | script.engine.groovy.file.update: | + | |
| - | script.engine.groovy.file.plugin: | + | |
| - | script.engine.groovy.indexed.aggs: | + | |
| - | script.engine.groovy.indexed.mapping: | + | |
| - | script.engine.groovy.indexed.search: | + | |
| - | script.engine.groovy.indexed.update: | + | |
| - | script.engine.groovy.indexed.plugin: | + | |
| - | script.engine.groovy.inline.aggs: | + | |
| - | script.engine.groovy.inline.mapping: | + | |
| - | script.engine.groovy.inline.search: | + | |
| - | script.engine.groovy.inline.update: | + | |
| - | script.engine.groovy.inline.plugin: | + | |
| - | + | ||
| - | === Создание массива === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -s -XPOST ' | + | |
| - | " | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | === Добавление в массив === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | === Удаление из массива === | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -s -XPOST ' | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | }' | + | |
| - | </ | + | |
| - | + | ||
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Пакетная обработка документов ==== | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | </ | + | |
| - | + | ||
| - | Данный пример обновляет первый документ (с ID равным 1) и затем удаляет второй документ (с ID равным 2) в одной массовой операции: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | {" | + | |
| - | {" | + | |
| - | {" | + | |
| - | </ | + | |
| - | + | ||
| - | === Параметры выдачи === | + | |
| - | + | ||
| - | * _source - | + | |
| - | * _score - Оценка - это числовое значение, | + | |
| - | + | ||
| - | ==== Агрегация ==== | + | |
| - | + | ||
| - | ==== Плагины / Plugins ==== | + | |
| - | + | ||
| - | + | ||
| - | * [[system: | + | |
| - | + | ||
| - | ===== Ошибки / Errors ===== | + | |
| - | + | ||
| - | * snapshot_missing_exception: | + | |
| - | * SnapshotMissingException: | + | |
| - | * Data too large, data for [@timestamp] would be larger than limit <code bash> | + | |
| - | $ curl -XPOST ' | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | ===== _search ===== | + | |
| - | + | ||
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ], | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ], | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | }, | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | }, | + | |
| - | " | + | |
| - | " | + | |
| - | "< | + | |
| - | ], | + | |
| - | " | + | |
| - | "</ | + | |
| - | ], | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | " | + | |
| - | } | + | |
| - | }, | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | ], | + | |
| - | " | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | ] | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | <code json> | + | |
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | ===== Клиенты ===== | + | * [[system: |
| - | * [[https:// | + | ==== Запросы ==== |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| + | * https:// | ||
| - | === Yii2 === | ||
| - | * https:// | + | ==== Примеры ==== |
| - | ==== Дискусии/ | + | * [[system: |
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| - | * https:// | ||
| - | * https:// | ||
| - | ==== Документация/ | + | ==== Библиотеки ==== |
| - | * [[http://filepi.com/i/23Us5ws|Elasticsearch in Action.pdf]] | + | * https://github.com/dadoonet/fscrawler |
| - | * http:// | + | * https://github.com/elastic/ |
| - | * https://www.elastic.co/ | + | * https:// |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * http:// | + | |
| - | * http:// | + | |
| - | * https://groups.google.com/forum/# | + | |
| - | * http:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * вжhttps:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | === Autocomplete / Shingles | + | === Расширения для Frameworks |
| - | * http:// | + | == Yii2 framework |
| - | * https:// | + | |
| - | * [[https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | ==== Видео | + | |
| - | * https://www.youtube.com/channel/UCUaTRF8LDgE6rQoduLWsErA/ | + | * https://github.com/Mirocow/yii2-elasticsearch |
| - | * https://www.youtube.com/watch? | + | * https://github.com/Mirocow/yii2-elasticsearch-log |
| - | * https:// | + | * https://github.com/Mirocow/yii2-elasticsearch-debug |
| - | * https:// | + | |
| - | * https://www.youtube.com/watch? | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | ==== Презентации ==== | + | == PHP == |
| - | * http://www.slideshare.net/OmskIT/20130202-03-elasticsearch | + | * https://github.com/ |
| + | * https:// | ||
| + | ==== Программное обеспечение ==== | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * **Beats** | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||
| + | * [[system: | ||