Оригинальный адрес:Начало работы с основами Elasticsearch
адрес блога:www.extlight.com
1. Что такое эластичный поиск
ElasticSearch — это поисковый сервер на базе Lucene. Он предоставляет распределенную многопользовательскую полнотекстовую поисковую систему на основе веб-интерфейса RESTful. Elasticsearch, разработанный на Java и выпущенный с открытым исходным кодом в соответствии с условиями лицензии Apache, в настоящее время является популярной корпоративной поисковой системой. Разработанный для использования в облачных вычислениях, он обеспечивает поиск в реальном времени, стабильный, надежный, быстрый и простой в установке и использовании.
1.1 Основные понятия
Индекс: набор документов с одинаковыми свойствами.
Тип: индекс может определять один или несколько типов, и документы должны принадлежать к типу.
Документ: основная единица данных, которая может быть проиндексирована.
Разделение: каждый индекс имеет несколько сегментов, и каждый сегмент представляет собой индекс Lucene.
Резервное копирование: скопируйте осколок, чтобы завершить его резервное копирование.
Метафора изображения:
В универмаге есть различные товары, такие как книги, ручки, фрукты и так далее. Книги можно разделить на разные категории в зависимости от их содержания, такие как технологии, образование, тревожные рассуждения и т. д. Наиболее известные романы-саспенсы и рассуждения — «Шерлок Холмс», «Прогулка в белую ночь» и так далее.
Универмаг --> База данных ElasticSearch
Книги --> Индекс
Подозрительные рассуждения --> Тип
Путешествие Белой Ночи --> Документация
1.2 Сценарии применения
- Массивный механизм анализа данных
- поисковая система сайта
- база данных
2. Установка и настройка
В этом тесте используется виртуальная машина (Centos7) с ip 192.168.2.41.Рекомендуется использовать версию 7.x.Автор использовал 6.x для запуска службы и сообщал о различных ошибках.
2.1 Среда зависимостей
JDK и NodeJS
2.2 Скачать
авторизоватьсяelasticSearchСкачайте файл с официального сайта.
2.3 Установка
tar -zxvf elasticsearch-5.6.1.tar.gz -C /usr
cd elasticsearch-5.6.1
Каталог файлов elasticsearch выглядит следующим образом:
2.4 Старт
Напоминание о наступлении на яму 1:
Поскольку Elasticsearch может выполнять файлы сценариев, из соображений безопасности запуск службы от имени пользователя root по умолчанию запрещен. Нам нужно заново создать имя пользователя и группу пользователей, чтобы запустить службу.
#增加 es 组
groupadd es
#增加 es 用户并附加到 es 组
useradd es -g es -p es
#给目录权限
chown -R es:es elasticsearch-5.6.1
#使用es用户
su es
Шаг на яме напоминание 2:
По умолчанию Elasticsearch разрешает только локальный доступ, если вам нужен удаленный доступ, вам нужно изменить его файл конфигурации.
vim config/elasticsearch.yml
# 去掉 network.host 前边的注释,将它的值改成0.0.0.0
network.host: 0.0.0.0
Напоминание о яме 3:
В процессе запуска может появиться сообщение об ошибке в среде Centos. Конкретные решения см. в информации, представленной в конце статьи.
запустить службу
bin/elasticsearch
Доступ через браузерhttp://192.168.2.41:9200, когда появится следующее содержимое, запуск выполнен успешно:
{
"name" : "OwUwJe-",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "vanzxnpaRumdRKiYic3f5A",
"version" : {
"number" : "5.6.1",
"build_hash" : "667b497",
"build_date" : "2017-09-14T19:22:05.189Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
2.5 Установите плагин
доступhttp://192.168.2.41:9200Просмотр эффекта отображения контента не является дружественным, поэтому нам нужно установить плагин с именем elasticsearch-head, чтобы сделать отображение контента более удобным.
авторизоватьсяGitHubсайте, найдите mobz/elasticsearch-head, загрузите его локально.
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
cd elasticsearch-head-master
npm install
npm run start
С помощью вышеуказанной команды мы установили плагин elasticsearch-head. Доступ через браузерhttp://192.168.2.41:9100, как показано ниже:
На рисунке мы видим, что плагин elasticsearch-head не подключен к сервису Elasticsearch, поэтому нам также нужно изменить файл конфигурации Elasticsearch:
cd elasticsearch-5.6.1
vim config/elasticsearch.yml
# 在文件末尾添加 2 段配置
http.cors.enabled: true
http.cors.allow-origin: "*"
После сохранения файла разделите 2 программы:
cd elasticsearch-5.6.1
# 后台启动 elasticSearch 服务
bin/elasticsearch -d
cd elasticsearch-head-master
npm run start
Доступ через браузерhttp://192.168.2.41:9100, как показано ниже:
Создать индекс через плагин
Просмотр основного состояния индекса
Этот плагин может напрямую добавлять, удалять, изменять и проверять данные Elasticsearch, поэтому возникают проблемы с безопасностью. Не рекомендуется использовать этот плагин в производственной среде!
3. Используйте
Elasticsearch поддерживает API в стиле RESTFUL.Основной формат API выглядит следующим образом:
http://<ip>:<port>/<索引>/<类型>/<文档id>
3.1 Создание/удаление индексов
Для удобства тестирования мы используем инструмент POSTMAN для выполнения интерфейсных запросов.
Чтобы создать неструктурированный индекс, вам нужно использоватьPUTпросить. Например, создайте индекс с именем book.
воплощать в жизнь:
[PUT] http://192.168.2.41:9200/book
Возвращаемый результат:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "book"
}
Создайте структурированный индекс, как показано ниже:
Чтобы удалить индекс, вам нужно использоватьDELETEпросить.
воплощать в жизнь:
[DELETE] http://192.168.2.41:9200/book
Возвращаемый результат:
{
"acknowledged": true
}
3.2 Вставка данных
Вставьте данные указанного ID, нужно использоватьPUTпросить. Как показано ниже:
Для вставки данных без указания ID нужно использоватьPOSTпросить. Как показано ниже:
3.3 Изменить данные
Чтобы изменить данные, вам нужно использоватьPOSTзапрос, а в URL нужно добавить _update
воплощать в жизнь:
[POST] http://192.168.2.41:9200/fruit/apple/1/_update
Параметры запроса (изменить цвет):
{
"doc": {
"color": "black"
}
}
Возвращаемый результат:
{
"_index": "fruit",
"_type": "apple",
"_id": "1",
"_version": 7,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
}
}
3.4 Удаление данных
Чтобы изменить данные, вам нужно использоватьDELETEпросить.
воплощать в жизнь:
[DELETE] http://192.168.2.41:9200/fruit/apple/1
Возвращаемый результат:
{
"found": true,
"_index": "fruit",
"_type": "apple",
"_id": "1",
"_version": 8,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
}
}
3.5 Поиск данных
Для запроса данных указанного ID необходимо использоватьGETпросить.
воплощать в жизнь:
[GET] http://192.168.2.41:9200/fruit/apple/AV69_4DDdZbC-YBdV-U3
Возвращаемый результат:
{
"_index": "fruit",
"_type": "apple",
"_id": "AV69_4DDdZbC-YBdV-U3",
"_version": 1,
"found": true,
"_source": {
"color": "green",
"weight": 1,
"createTime": "2017-09-26 19:05:26"
}
}
Условный запрос, нужно использоватьPOSTпросить.
воплощать в жизнь:
[POST] http://192.168.2.41:9200/fruit/apple/_search
Параметры запроса (ищите color="green"):
{
"query": {
"match":{
"color": "green"
}
}
}
Возвращаемый результат:
{
"took": 8,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "fruit",
"_type": "apple",
"_id": "AV69_4DDdZbC-YBdV-U3",
"_score": 0.2876821,
"_source": {
"color": "green",
"weight": 1,
"createTime": "2017-09-26 19:05:26"
}
}
]
}
}
использованная литература
- blog.CSDN.net/QQ942477618…решение проблем
- blog.CSDN.net/Прикосновение старика/AR…решение проблем
- blog.CSDN.net/Цзянькунь король…решение проблем
- Вууху. Руан Ифэн.com/blog/2017/0…
- Блог Woohoo.cn на .com/Бюро планирования 1976/Боится/5…