Приднестровская поддержка XOOPS
Полнотекстовый поиск выполняется с помощью конструкции MATCH(...) AGAINST(...). Конструкция имеет следующий формат:
MATCH(<Поля через запятую>)
AGAINST('<Строка для поиска>' [<Модификатор>])
Необязательный параметр <Модификатор> может принимать следующие значения:
□ IN BOOLEAN MODE — режим логического поиска;
□ WITH QUERY EXPANSION — поиск с расширением запроса.
Для примера добавим три записи в таблицу search1:
INSERT INTO `search1` VALUES (NULL, 'В индекс попадут слова длиной от 4 до 84 символов. Данные значения задаются переменными ft_min_word_len и ft_max_word_len соответственно. Изменить значения этих переменных можно через конфигурационный файл my.ini. После изменения значения переменных
необходимо заново создать индексы FULLTEXT.'); (1)
INSERT INTO `search1` VALUES (NULL, 'Запись 2');
INSERT INTO `search1` VALUES (NULL, 'Строка 3');
А теперь найдем строку с помощью полнотекстового поиска:
SELECT * FROM `search1` WHERE MATCH(`str`) AGAINST('значения');
Результаты поиска сортируются по коэффициенту релевантности. Коэффициент представляет собой число с плавающей точкой. Чтобы увидеть этот коэффициент для разных запросов, воспользуемся следующими SQL-запросами:
SELECT MATCH(`str`) AGAINST('конфигурационный файл') AS iq
FROM `search1` WHERE MATCH(`str`) AGAINST('конфигурационный файл');
/* Выведет: 0.99839779903687 */
SELECT MATCH(`str`) AGAINST('конфигурационный файл') AS iq
FROM `search1` WHERE MATCH(`str`) AGAINST('конфигурационный файл');
/* Выведет: 0.49919889951843 */
Отправитель | Нити |
---|
5 пользователь(ей) активно (3 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 5 далее... |