Fullstack Coding
200 subscribers
41 photos
13 links
Коротко и ёмко про Web разработку)
Сотрудничество: @PashNorthMan
Download Telegram
Индекс FullText в MySQL используется для полнотекстового поиска в текстовых данных. Он позволяет выполнять поиск по словам и фразам в текстовых полях, таких как CHAR, VARCHAR и TEXT.

🖊️Основные моменты:

1. Создание индекса:
Чтобы создать полнотекстовый индекс, можно использовать следующий синтаксис:

      CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
body TEXT,
FULLTEXT(title, body)
);


Либо добавить индекс к существующей таблице:

      ALTER TABLE articles ADD FULLTEXT(title, body);


2. Поиск с использованием MATCH() и AGAINST():
Для выполнения полнотекстового поиска используется оператор MATCH() в сочетании с AGAINST(). Например:

      SELECT * FROM articles
WHERE MATCH(title, body) AGAINST('поиск' IN NATURAL LANGUAGE MODE);


3. Режимы поиска:
MySQL поддерживает несколько режимов поиска:
📍NATURAL LANGUAGE MODE: Поиск по естественному языку.
📍BOOLEAN MODE: Позволяет использовать операторы (например, +, -, *) для более точного управления поиском.
📍WITH QUERY EXPANSION: Расширяет запрос, добавляя синонимы и связанные термины.

4. Ограничения:
📍Полнотекстовые индексы могут быть созданы только для таблиц с типом хранения MyISAM или InnoDB (начиная с MySQL 5.6).
📍По умолчанию, MySQL игнорирует слова, состоящие менее чем из 4 символов (это значение можно изменить в конфигурации).
📍Стоп-слова (например, "и", "в", "на") также игнорируются.

5. Оптимизация:
Для улучшения производительности полнотекстового поиска можно использовать различные настройки конфигурации MySQL, такие как ft_min_word_len и ft_max_word_len, а также управлять стоп-словами.

🍕Пример использования:

CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
body TEXT,
FULLTEXT(title, body)
);

INSERT INTO articles (title, body) VALUES
('Первый заголовок', 'Это текст первого статьи.'),
('Второй заголовок', 'Это текст второй статьи.'),
('Третий заголовок', 'Это текст третьей статьи.');

SELECT * FROM articles
WHERE MATCH(title, body) AGAINST('текст' IN NATURAL LANGUAGE MODE);


Этот запрос вернет все статьи, содержащие слово "текст" в заголовке или теле статьи.

#mysql
Библиотека java.nio

Библиотека java.nio, или Java New I/O, предназначена для реализации высокопроизводительных операций ввода-вывода в Java. Она предоставляет более гибкие и эффективные способы работы с файлами и сетевыми соединениями по сравнению с java.io.

📍Особенности

1. Неблокирующий ввод-вывод: Java NIO поддерживает неблокирующий ввод-вывод, что позволяет приложениям обрабатывать несколько соединений в одном потоке, не дожидаясь, пока данные будут готовы.

2. Буферы: В NIO данные считываются и записываются в буферы. Это значит, что вы работаете с небольшими фрагментами данных, что увеличивает производительность.

3. Каналы: Вместо потоков InputStream и OutputStream, NIO использует каналы (Channels). Каналы позволяют работать как с вводом, так и с выводом. Например, FileChannel для работы с файлами, SocketChannel для сокетов.

4. Селекторы: Позволяют одному потоку отслеживать несколько каналов (например, сетевых соединений) и обрабатывать события (такие как готовность чтения или записи) по мере их возникновения.

5. Пути и файловая система: Библиотека также предоставляет поддержку для работы с путями файловой системы через класс Path, что упрощает манипуляции с файловыми путями.

🍕Когда использовать?

- В приложениях, требующих высокой производительности при выполнении операций ввода-вывода, таких как сетевые приложения или обработка больших объемов файлов.
- Когда нужно управлять большим количеством соединений одновременно, например в веб-серверах.

#Java
This media is not supported in the widget
VIEW IN TELEGRAM
👏3🤮1