PostgreSQL

Приклади повнотекстового пошуку PostgreSQL

Приклади повнотекстового пошуку PostgreSQL
Будь-яка база даних повинна мати ефективну та універсальну можливість пошуку. Щоразу, коли мова йде про бази даних, PostgreSQL є майстром усіх ремесел. Він поєднує в собі всі речі, які вам полюбилися з SQL, з безліччю функціональних можливостей бази даних, які не є SQL. Будь-яка з цих функцій, не пов’язаних із SQL, наприклад, сортування інформації JSONB, є фантастичною, і вам навіть не доведеться пробувати іншу базу даних. Повнотекстовий пошук є однією з найновіших не-SQL функцій, включених до PostgreSQL. Повнотекстовий пошук PostgreSQL повністю функціональний, або ви хочете отримати окремий індекс пошуку? Якщо ви можете якось розробити повний текстовий пошук, позбавлений додавання ще однієї обкладинки коду, це було б фантастичною ідеєю. Ви вже знайомі з пошуком шаблонів у базі даних MySQL. Отже, давайте спочатку подивимось на них. Відкрийте оболонку командного рядка PostgreSQL у вашій комп'ютерній системі. Напишіть заголовок сервера, ім’я бази даних, номер порту, ім’я користувача та пароль для конкретного користувача, крім параметрів за замовчуванням. Якщо вам потрібно створити слоган із міркуваннями за замовчуванням, залиште всі варіанти порожніми та натисніть Enter кожна опція. На даний момент ваша оболонка командного рядка обладнана для роботи.

Щоб зрозуміти концепцію повнотекстового пошуку, вам слід згадати знання пошуку за шаблоном за допомогою ключового слова LIKE. Отже, припустимо таблицю "людина" в базі даних "тест" із наступними записами в ній.

>> ВИБЕРІТЬ * ВІД людини;

Припустимо, ви хочете отримати записи цієї таблиці, де стовпець 'name' має символ 'i' в будь-якому з його значень. Спробуйте наведений нижче запит SELECT під час використання речення LIKE у командній оболонці. З вихідних даних видно, що у нас є лише 5 записів для цього конкретного символу "i" у стовпці "name".

>> ВИБЕРІТЬ * ВІД особи, ДЕ ім’я ПОДОБАЄТЬСЯ „% i% ';

Використання Tvsector:

Іноді корисно використовувати ключове слово LIKE для швидкого пошуку за шаблоном, хоча слово є. Можливо, ви могли б подумати про використання стандартних виразів, і, хоча це можливо, альтернатива, регулярні вирази одночасно сильні та мляві. Наявність процедурного вектора для цілих слів у тексті, просторічний опис цих слів - набагато ефективніший спосіб вирішення цієї проблеми. Для реагування на нього було створено концепцію повного пошуку тексту та тип даних tsvector. У PostgreSQL є два методи, які роблять саме те, що ми хочемо:

Приклад 01:

Почнемо з простої ілюстрації створення вектора. Припустимо, ви хочете зробити вектор для рядка: «Деякі люди мають кучеряве каштанове волосся завдяки правильному чищенню щітки.". Отже, вам потрібно написати функцію to_tvsector () разом із цим реченням у дужках запиту SELECT, як додано нижче. З вихідних даних видно, що це дасть вектор посилань (позицій файлів) для кожного маркера, а також там, де терміни з невеликим контекстом, такі як статті () та сполучники (та, або), свідомо ігноруються.

>> ВИБЕРІТЬ to_tsvector ('Деякі люди мають кучеряві каштанові волосся завдяки правильному чищенню щіткою');

Приклад 02:

Припустимо, у вас є два документи, в яких містяться дані. Щоб зберегти ці дані, зараз ми будемо використовувати реальний приклад генерації токенів. Припустимо, ви створили таблицю "Дані" у вашій базі даних "тест" із кількома стовпцями в ній, використовуючи нижченаведений запит СТВОРИТИ ТАБЛИЦЮ. Не забудьте створити в ньому стовпець типу TVSECTOR із назвою 'маркер'. З наведених нижче результатів ви можете поглянути на створену таблицю.

>> СТВОРИТИ Дані ТАБЛИЦІ (Id СЕРІЙНИЙ ПЕРВИННИЙ КЛЮЧ, інформаційний ТЕКСТ, маркер TSVECTOR);

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

>> ВСТАВИТИ В ЗНАЧЕННЯ даних (інформації) ('Дві помилки ніколи не можуть зробити одну помилку.'), (' Він той, хто вміє грати у футбол.'), (' Чи можу я взяти в цьому роль?'), (' Болю всередині людини неможливо зрозуміти '), (' Принеси персик у своє життя);

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

>> ОНОВЛЕННЯ даних f1 Встановити маркер = to_tsvector (f1.інформація) ВІД даних f2;

Тепер, коли у нас все це на місці, повернімось до нашої ілюстрації "може один" за допомогою сканування. To_tsquery з оператором AND, як уже зазначалося, не має різниці між розташуванням файлів у файлах, як показано з результатів, зазначених нижче.

>> ВИБЕРІТЬ ідентифікатор, інформацію ВІД даних WHERE маркер @@ to_tsquery ('can & one');

Приклад 04:

Щоб знайти слова, які «поруч», ми спробуємо той самий запит із «<->'оператор. Зміна відображається у вихідних даних нижче.

>> ВИБЕРІТЬ ідентифікатор, інформацію ВІД даних WHERE маркер @@ to_tsquery ('can <-> один ');

Ось приклад прямого слова поруч із іншим.

>> ВИБЕРІТЬ ідентифікатор, інформацію ВІД даних WHERE маркер @@ to_tsquery ('one <-> біль ');

Приклад 05:

Ми знайдемо слова, які не знаходяться одразу поруч, використовуючи число в операторі відстані для посилання на відстань. Близькість між "принести" та "життям" - це 4 слова, крім відображеного зображення.

>> ВИБЕРІТЬ * ВІД даних ДЕ, де маркер @@ to_tsquery ('принести <4> життя ');

Щоб перевірити близькість між словами майже 5 слів, додано нижче.

>> ВИБЕРІТЬ * ВІД даних WHERE маркер @@ to_tsquery ('неправильно <5> праворуч ');

Висновок:

Нарешті, ви зробили всі прості та складні приклади повнотекстового пошуку, використовуючи оператори та функції To_tvsector та to_tsquery.

How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...