Apache Solr

Apache Solr Налаштування вузла

Apache Solr Налаштування вузла

Частина 1: Налаштування одного вузла

Сьогодні електронне зберігання ваших документів або даних на запам'ятовуючому пристрої є швидким і простим, також порівняно дешевим. Використовується посилання на ім'я файлу, яке призначене для опису того, про що йдеться в документі. Крім того, дані зберігаються в Системі управління базами даних (СУБД), такі як PostgreSQL, MariaDB або MongoDB, щоб назвати лише кілька варіантів. Декілька носіїв інформації або локально, або віддалено підключені до комп'ютера, такі як USB-накопичувач, внутрішній або зовнішній жорсткий диск, мережеве сховище (NAS), хмарне сховище або GPU / на базі Flash, як у Nvidia V100 [10].

Навпаки, зворотний процес пошуку потрібних документів у колекції документів є досить складним. Здебільшого це вимагає виявлення формату файлу без помилок, індексація документа та вилучення ключових понять (класифікація документів). Тут з’являється фреймворк Apache Solr. Він пропонує практичний інтерфейс для виконання згаданих кроків - створення індексу документа, прийняття пошукових запитів, здійснення фактичного пошуку та повернення результату пошуку. Таким чином, Apache Solr формує ядро ​​для ефективного дослідження бази даних або елемента зберігання документів.

У цій статті ви дізнаєтесь, як працює Apache Solr, як налаштувати єдиний вузол, індексувати документи, здійснити пошук та отримати результат.

Наступні статті ґрунтуються на цьому, і в них ми обговорюємо інші, більш конкретні випадки використання, такі як інтеграція СУБД PostgreSQL як джерела даних або балансування навантаження на декількох вузлах.

Про проект Apache Solr

Apache Solr - це пошукова система, заснована на потужному сервері індексу пошуку Lucene [2]. Написаний на Java, він підтримується під егідою Фонду програмного забезпечення Apache (ASF) [6]. Він вільно доступний за ліцензією Apache 2.

Тема «Знайти документи та дані знову» відіграє дуже важливу роль у світі програмного забезпечення, і багато розробників з нею інтенсивно займаються. На веб-сайті Awesomeopensource [4] перелічено понад 150 проектів з відкритим кодом пошукової системи. На початку 2021 року ElasticSearch [8] та Apache Solr / Lucene - дві найкращі собаки, коли мова заходить про пошук більших наборів даних. Розробляючи вашу пошукову систему, потрібно багато знань, Франк робить це за допомогою бібліотеки AdvaS Advanced Search [3] на базі Python з 2002 року.

Налаштування Apache Solr:

Встановлення та експлуатація Apache Solr не є складними, це просто ціла низка кроків, які ви повинні виконати. Залиште близько 1 години для результату першого запиту даних. Крім того, Apache Solr - це не просто хобі-проект, а й використовується у професійному середовищі. Тому обране середовище операційної системи призначене для тривалого використання.

В якості базового середовища для цієї статті ми використовуємо Debian GNU / Linux 11, який є майбутнім випуском Debian (на початку 2021 року), і очікується, що він буде доступний в середині 2021 року. У цьому підручнику ми очікуємо, що ви вже встановили його - або як власну систему, у віртуальній машині, як VirtualBox, або контейнері AWS.

Окрім основних компонентів, вам потрібно встановити в систему наступні програмні пакети:

Ці пакети є стандартними компонентами Debian GNU / Linux. Якщо вони ще не встановлені, ви можете встановити їх за один раз як користувач з адміністративними правами, наприклад, root або через sudo, як показано нижче:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

Підготувавши середовище, другим кроком є ​​встановлення Apache Solr. На даний момент Apache Solr недоступний як звичайний пакет Debian. Отже, потрібно отримати Apache Solr 8.8 із розділу завантаження веб-сайту проекту [9]. Використовуйте команду wget нижче, щоб зберегти її в каталозі / tmp вашої системи:

$ wget -O / tmp https: // завантаження.апаш.орг / люцен / сольр / 8.8.0 / solr-8.8.0.tgz

Перемикач -O скорочує -output-документ і змушує wget зберігати отриманий дьоготь.gz у вказаному каталозі. Розмір архіву становить приблизно 190 млн. Потім розпакуйте архів у каталог / opt за допомогою tar. В результаті ви знайдете два підкаталоги - / opt / solr та / opt / solr-8.8.0, тоді як / opt / solr встановлюється як символічне посилання на останню. Apache Solr постачається із сценарієм налаштування, який ви виконуєте наступним чином:

# / opt / solr-8.8.0 / bin / install_solr_service.ш

Це призводить до створення користувальницького Solr, запущеного в службі Solr, а також його домашній каталог під / var / solr встановлює службу Solr, додану з відповідними вузлами, і запускає службу Solr через порт 8983. Це значення за замовчуванням. Якщо ви незадоволені ними, ви можете змінити їх під час встановлення або навіть пізніше, оскільки сценарій установки приймає відповідні перемикачі для налаштування налаштування. Рекомендуємо ознайомитись із документацією Apache Solr щодо цих параметрів.

Програмне забезпечення Solr розташоване в наступних каталогах:

Більш докладно ви можете прочитати про ці каталоги в документації Apache Solr [12].

Керування Apache Solr:

Apache Solr працює як послуга у фоновому режимі. Ви можете запустити його двома способами, використовуючи systemctl (перший рядок) як користувача з адміністративними дозволами або безпосередньо з каталогу Solr (другий рядок). Нижче перелічені обидві команди терміналу:

# systemctl start solr
$ solr / bin / solr start

Зупинка Apache Solr виконується аналогічно:

# systemctl stop solr
$ solr / bin / solr stop

Той самий шлях відбувається при перезапуску служби Apache Solr:

# systemctl перезапустіть solr
$ solr / bin / solr перезапуск

Крім того, стан процесу Apache Solr може відображатися наступним чином:

# systemctl status solr
$ solr / bin / status solr

Вихідні дані містять запущений службовий файл, як відповідну позначку часу, так і повідомлення журналу. На малюнку нижче видно, що послугу Apache Solr було запущено через порт 8983 із процесом 632. Процес успішно триває 38 хвилин.

Щоб побачити, чи активний процес Apache Solr, ви можете також перехресно перевірити, використовуючи команду ps у поєднанні з grep. Це обмежує вихідні дані ps для всіх активних процесів Apache Solr.

# ps сокира | grep - кольоровий сольр

Малюнок нижче демонструє це для одного процесу. Ви бачите виклик Java, що супроводжується списком параметрів, наприклад, використання пам'яті (512M) портів для прослуховування на 8983 для запитів, 7983 на запити на зупинку та тип з'єднання (http).

Додавання користувачів:

Процеси Apache Solr виконуються з певним користувачем з іменем solr. Цей користувач корисний для управління процесами Solr, завантаження даних та надсилання запитів. Після налаштування користувач-розпорядник не має пароля і, як очікується, матиме його для входу, щоб продовжити далі. Встановіть пароль для користувальницького розв'язувача, наприклад кореня користувача, він відображається наступним чином:

# passwd solr

Адміністрація Solr:

Керування Apache Solr здійснюється за допомогою панелі інструментів Solr. Це доступно через веб-браузер за адресою http: // localhost: 8983 / solr. На малюнку нижче показано основний вигляд.

Зліва ви бачите головне меню, яке веде вас до підрозділів для ведення журналу, адміністрування ядер Solr, налаштування Java та інформації про стан. Виберіть потрібне ядро, використовуючи поле вибору під меню. У правій частині меню відображається відповідна інформація. Запис у меню "Інформаційна панель" містить додаткові відомості щодо процесу Apache Solr, а також поточного завантаження та використання пам'яті.

Зверніть увагу, що вміст інформаційної панелі змінюється залежно від кількості ядер Solr та проіндексованих документів. Зміни впливають як на пункти меню, так і на відповідну інформацію, яка відображається праворуч.

Розуміння того, як працюють пошукові системи:

Простіше кажучи, пошукові системи аналізують документи, класифікують їх і дозволяють здійснювати пошук на основі їх класифікації. В основному, процес складається з трьох етапів, які називаються скануванням, індексуванням та ранжуванням [13].

Повзання є першим етапом і описує процес, за допомогою якого збирається новий та оновлений вміст. У пошуковій системі використовуються роботи, які також відомі як павуки або сканери, звідси термін сканування для перегляду доступних документів.

Називається другий етап індексація. Зібраний раніше вміст стає доступним для пошуку, перетворюючи оригінали документів у формат, зрозумілий пошуковій системі. Ключові слова та поняття витягуються та зберігаються у (масивних) базах даних.

Називається третій етап рейтинг і описує процес сортування результатів пошуку відповідно до їх релевантності за допомогою пошукового запиту. Загальноприйнято відображати результати в порядку зменшення, щоб результат, який має найбільше значення для запиту пошукового запиту, був на першому місці.

Apache Solr працює подібно до описаного раніше триступеневого процесу. Як і популярна пошукова система Google, Apache Solr використовує послідовність збору, зберігання та індексування документів з різних джерел і робить їх доступними / доступними для пошуку майже в реальному часі.

Apache Solr використовує різні способи індексації документів, включаючи такі [14]:

  1. Використання обробника запитів на індекс під час завантаження документів безпосередньо в Solr. Ці документи повинні бути у форматах JSON, XML / XSLT або CSV.
  2. Використання обробника запиту на вилучення (комірка Solr). Документи повинні бути у форматах PDF або Office, які підтримуються Apache Tika.
  3. Використання обробника імпорту даних, який передає дані з бази даних та каталогізує їх за допомогою імен стовпців. Обробник імпорту даних отримує дані з електронних листів, RSS-каналів, даних XML, баз даних та простих текстових файлів як джерела.

Обробник запитів використовується в Apache Solr, коли надсилається запит на пошук. Обробник запитів аналізує даний запит на основі тієї ж концепції обробника індексу, щоб відповідати запиту та раніше проіндексованим документам. Матчі класифікуються відповідно до їх відповідності або відповідності. Короткий приклад запиту продемонстровано нижче.

Завантаження документів:

Для простоти ми використовуємо зразок набору даних для наступного прикладу, який вже надає Apache Solr. Завантаження документів здійснюється як користувацький розбірник. Крок 1 - це створення ядра з назвою techproducts (для ряду технічних товарів).

$ solr / bin / solr create -c techproducts

Все добре, якщо ви бачите повідомлення "Створено нове ядро" techproducts "". Крок 2 - це додавання даних (XML-даних із exampledocs) до раніше створених основних технологічних продуктів. Використовується інструментальний пост, який параметризується за допомогою -c (назва ядра) та документи для завантаження.

$ solr / bin / post -c techproducts solr / example / exampledocs / *.xml

Це призведе до результатів, показаних нижче, і буде містити весь виклик плюс 14 індексованих документів.

Також на інформаційній панелі відображаються зміни. Новий запис із назвою techproducts видно у спадному меню ліворуч, а кількість відповідних документів змінено праворуч. На жаль, детальний огляд необроблених наборів даних неможливий.

Якщо ядро ​​/ колекцію потрібно видалити, скористайтеся наступною командою:

$ solr / bin / solr delete -c techproducts

Запит даних:

Apache Solr пропонує два інтерфейси для запитів даних: через веб-панель інструментів та командний рядок. Ми пояснимо обидва методи нижче.

Надсилання запитів через інформаційну панель Solr виконується наступним чином:

Командний рядок приймає той самий запит, що і на інформаційній панелі. Різниця полягає в тому, що ви повинні знати назву полів запиту. Для того, щоб надіслати той самий запит, що і вище, вам потрібно виконати таку команду в терміналі:

$ завитка
http: // localhost: 8983 / solr / techproducts / query?q = ”manu”: ”Бєлкін

Вихідні дані представлені у форматі JSON, як показано нижче. Результат складається із заголовка відповіді та фактичної відповіді. Відповідь складається з двох наборів даних.

Підведенню:

Вітаю! Ви досягли першого етапу з успіхом. Налаштовано базову інфраструктуру, і ви дізналися, як завантажувати та запитувати документи.

Наступний крок розгляне, як уточнити запит, сформулювати більш складні запити та зрозуміти різні веб-форми, що пропонуються на сторінці запитів Apache Solr. Також ми обговоримо, як обробити результат пошуку з використанням різних вихідних форматів, таких як XML, CSV та JSON.

Про авторів:

Jacqui Kabeta - еколог, завзятий дослідник, тренер та наставник. У кількох африканських країнах вона працювала в галузі ІТ та НУО.

Френк Хофманн - ІТ-розробник, тренер та автор, і воліє працювати з Берліна, Женеви та Кейптауна. Співавтор книги Debian Package Management, доступної з dpmb.орг

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...