предисловие
Текст был включен в мой репозиторий GitHub, добро пожаловать, звезда:GitHub.com/bin39232820…
Лучшее время посадить дерево было десять лет назад, затем сейчас
болтовня
Разве я не закончил писать серию статей о параллельном программировании на Java в прошлый раз? Изначально я планировал написать серию статей о JVM, потому что это обязательно нужно задать на собеседовании, но из-за перевода персонала в компанию мне придется взять на себя еще несколько сервисов, одним из которых является Search Service, причина, по которой я написал это сегодня, состоит в том, чтобы заново изучить ElasticSearch, потому что я изучил его до того, как взялся за это, но он уже давно бесполезен, он почти забыт , просто многие читатели сказали, что хотят учиться вместе, Тогда я просто планирую организовать серию статей, чтобы учиться с 0 и учиться вместе с вами.
Что такое поиск?
Baidu: Например, когда мы хотим найти какую-либо информацию, мы идем в Baidu для поиска, например, фильм, который нам нравится, или книга, которая нам нравится, или новости, которые нас интересуют (упоминается). впечатления). Baidu != поиск
- Поиск в Интернете: веб-сайты электронной коммерции, веб-сайты по подбору персонала, новостные веб-сайты, различные приложения.
- Поиск ИТ-систем: программное обеспечение открытого доступа, программное обеспечение для автоматизации делопроизводства, управление совещаниями, управление расписанием, управление проектами.
Поиск предназначен для поиска нужной информации в любом сценарии. В этот раз вы вводите ключевое слово, которое хотите найти, а затем ожидаете найти некоторую информацию, связанную с этим ключевым словом.
Что такое полнотекстовый поиск и Lucene?
- Полнотекстовый поиск, инвертированный индекс
Полнотекстовый поиск означает, что компьютерная программа индексирования сканирует каждое слово в статье и строит индекс для каждого слова, указывая номер и позицию слова в статье.Когда пользователь запрашивает, программа поиска будет основываться на предварительном -установленный индекс Поиск и передача результатов поиска методу поиска пользователя. Этот процесс аналогичен процессу поиска слов в списке поисковых слов в словаре. Полнотекстовый поиск данных в базе данных поисковой системы.
- lucene
Lucene представляет собой пакет jar, который содержит различные упакованные инвертированные индексы и поисковые коды, включая различные алгоритмы. Когда мы используем Java для разработки, мы можем ввести lucene jar, а затем разработать его на основе API lucene.
неоднозначная история
Много лет назад недавно женившийся безработный девелопер по имени Шей Бэнон, поскольку его жена собиралась в Лондон учиться кулинарии, последовал его примеру. Во время поиска работы он начал создавать раннюю версию Lucene, чтобы создать поисковую систему рецептов для своей жены. Работать непосредственно с Lucene было бы сложно, поэтому Шей начал абстрагировать код Lucene, чтобы Java-программисты могли добавлять в свои приложения функции поиска. Он выпустил свой первый проект с открытым исходным кодом под названием «Компас». Позже Шей нашел работу в распределенной среде с высокой производительностью и сеткой данных в памяти, поэтому само собой разумеется, что высокопроизводительная распределенная поисковая система в реальном времени также является само собой разумеющимся. Затем он решил переписать библиотеку Compass, чтобы сделать ее отдельным сервисом под названием Elasticsearch.
Первый публичный релиз появился в феврале 2010 года, и с тех пор Elasticsearch стал одним из самых популярных проектов на Github с более чем 300 участниками кода. Была создана компания, которая специализируется на Elasticsearch, и они разработали новые функции, предоставляя коммерческую поддержку, но Elasticsearch всегда будет с открытым исходным кодом и доступным для всех. Жена Шэя все еще ждет своего рецепта...
Что такое эластичный поиск?
- Elasticsearch, основанный на lucene Распределенный механизм поиска и анализа Restful в реальном времени (в реальном времени)
- Распределенное хранилище файлов в реальном времени, каждое поле индексируется и доступно для поиска
- Высокая масштабируемость, масштабируемость до сотен серверов, обработка структурированных или неструктурированных данных уровня PB
- Elasticsearch для полнотекстового поиска, структурированного поиска, использования анализа/слияния
Особенности эластичного поиска:
- Elasticsearch не имеет транзакций в обычном смысле (без транзакций)
- Elasticsearch — это документно-ориентированная база данных.
- Elasticsearch не предоставляет функции авторизации и аутентификации.
Что может Elasticsearch?
- У вас есть онлайн-рынок, который позволяет пользователям искать товары, которые вы продаете. В этом примере вы можете использовать Elasticsearch для хранения всего вашего каталога и инвентаря, а также предоставления поиска и автозаполнения поиска и поисковых предложений.
- Вы хотите собирать журналы или бизнес-данные, а также анализировать и извлекать из этих данных рыночные тенденции, статистику, сводки или аномалии. В этом примере вы можете использовать Logstash (часть стека Elasticsearch/Logstash/Kibana) для сбора, агрегирования и анализа ваших данных, а затем вводить данные в Elasticsearch через Logstash. Как только данные находятся в Elasticsearch, вы можете запускать поиск и агрегацию и извлекать из них любые интересующие вас данные.
- Вы запускаете платформу оповещения о ценах, которая позволяет клиентам, разбирающимся в цене, указать правило, например: «Я влюбился в электронный продукт, и я хотел бы узнать, насколько меньше цена любого продавца на этот электронный продукт будет стоить». в следующем месяце. Напомни мне, когда." В этом примере вы можете получить цены всех продавцов, поместить цены в Elasticsearch и использовать функцию обратного поиска Elasticsearch (фильтр/извлечение), чтобы сопоставить изменения цен в ответ на запрос пользователя и, в конечном итоге, найти совпадение, как только оно будет найдено. окно появится перед пользователем.
- У вас есть потребности в аналитике/бизнес-аналитике, и вы хотите быстро просматривать, анализировать и визуализировать с помощью графиков, а также запрашивать одноранговые вопросы по большому набору данных (например, миллионам или миллионам записей). В этом примере вы можете использовать Elasticsearch для хранения своих данных, а затем использовать Kibana (часть стека Elasticsearch/Logstash/Kibana) для создания пользовательских информационных панелей. Таким образом, вы можете интуитивно понять важные для вас данные. Кроме того, вы можете использовать возможности интеграции Elasticsearch, чтобы полагаться на свои данные для представления более сложных запросов бизнес-аналитики.
как сказать? По сути, лось — это техническое решение, которое может многое. В настоящее время мы только приступаем к работе с es, изучаем его функцию поиска и хорошо ее используем.
Введение в установку и настройку Elasticsearch
Поскольку блоггеры знают докер, я использовал докер, когда играл один, но, учитывая, что многие читатели не знают, в этот раз я установлю его с родным, будет несколько ям, я упомяну об этом позже. , но что я хочу сказать, так это то, что первый шаг в изучении вещи - это ее установка.Может быть, процесс будет очень болезненным, но вы должны его завершить.
Установка одного узла
Elasticsearch разработан на основе java, поэтому перед установкой необходимо установить jdk версии не ниже 1.8.
ссылка на скачивание:Woohoo. Сеть Oracle.com/tech…
Установка jdk: скачать --- разархивировать --- настроить переменные среды
Чтобы объяснить, виртуальная машина блоггера - это ubantu, а память - 3G, потому что блоггер - это не профессиональный учебник, можно сказать, что вам нужно объединить несколько блогов, чтобы завершить это руководство по установке, но в Интернете есть все вместе. Да, через это нужно пройти, но блоггеры стараются быть лучше
Здесь нам нужно настроить переменные среды, а затем каждый человек ставит разные пути и конфигурации, в основном в /etc/profile.
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_1
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
установка elasticsearch: скачать---разархивировать---настроить---запустить
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
tar -zxvf elasticsearch-6.6.2.tar.gz
cd elasticsearch-6.6.2
Ниже приведена внутренняя структура каталогов.На самом деле, если вы будете много работать, вы обнаружите, что она почти одинакова.Каждое промежуточное ПО похоже на это.
Сначала измените sudo vi config/elasticsearch.yml (напишите IP-порт своей виртуальной машины)
Давайте запустим его напрямую и посмотрим, что произойдет.
cd /bin
./elasticsearch
запускать
Очевидная ошибка, он сказал, что я не могу загрузиться с рутом, давайте сначала исправим это
Поэтому мне нужно создать новую системную учетную запись для elasticsearch.
groupadd elasticsearch //新建一个elasticsearch的用户组
useradd -g elasticsearch elasticsearch //在elasticsearch用户组下面建立一个elasticsearch的用户
chown -R elasticsearch:elasticsearch elasticsearch-6.6.2/
Затем переключитесь на учетную запись прямо сейчас, чтобы запустить elasticsearch.
su elasticsearch
./elasticsearch-6.6.2/bin/elasticsearch
Эта ошибка также очевидна, максимальная область виртуальной памяти vm.max_map_count (65530) слишком мала, по крайней мере увеличьте до 262144, затем перезапустите
Измените файл конфигурации под учетной записью root
vi /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
Хорошо, давайте продолжим менять аккаунт, чтобы запустить elasticsearch
Что ж, стартап удачный, неплохой
ик установить
Тогда все равно ставьте ES, а потом ставьте токенизатор ik, потому что es за границей с открытым исходным кодом, для китайцев нужен плагин
-
Первое: адрес загрузки:GitHub.com/many out/E последний…, здесь нужно скачать соответствующую версию ИК согласно вашей версии Es, здесь я использую ES 6.6.2, поэтому просто скачайте файл ik-6.6.2.zip.
-
Второй: Разархивируйте --> Скопируйте файл в каталог установки es/plugins.
-
Третий шаг — перезапустить es
Установка головы ElasticSearch
Это подключаемый модуль Google Chrome, который можно использовать для запроса данных. Эта установка включает в себя установку подключаемого модуля Google.
Пока установка завершена. Давайте сначала сделаем это. Если вам что-то не понятно, вы можете спросить в группе. Это может быть неудачно, потому что конфигурация у всех не обязательно одинаковая. Давайте изучим больше. Я Первая часть Вторая часть, но сколько часов она заняла? Так или иначе, все пришли сюда, давай.
конец
Сегодня немного познакомил с es, а потом сделал вещи для установки для всех.Если будут вопросы по установке, то можете задать в группе.Если будет время, обязательно отвечу, когда увижу.
ежедневные комплименты
Хорошо всем, вышеизложенное является полным содержанием этой статьи. Люди, которые могут видеть это здесь, всенастоящий порошок.
Творить нелегко. Ваша поддержка и признание — самая большая мотивация для моего творчества. Увидимся в следующей статье.
Six Meridians Excalibur | Text [Original] Если в этом блоге есть какие-то ошибки, прошу покритиковать и посоветовать, буду очень признателен!