i_d_1
@i_d_1
Программист PHP

Почему не работает полнотекстовый поиск?

Дамп таблички :
--
-- Структура таблицы `test`
--

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `param` text NOT NULL,
  `param1` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `test`
--

INSERT INTO `test` (`id`, `param`, `param1`) VALUES
(1, 'lorem ipsom dollor', '');

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `test`
--
ALTER TABLE `test`
  ADD PRIMARY KEY (`id`);
ALTER TABLE `test` ADD FULLTEXT KEY `param` (`param`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `test`
--
ALTER TABLE `test`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;


Запрос:
SELECT *, MATCH(`param`) AGAINST ('ipsom') as Relevance FROM test WHERE 1=1


Relevance всегда 0. Пробовал и текст другой и индекс по двум полям. С boolen mode работает но соответственно не считает реливантность. ТОесть если я делаю SELECT * FROM test WHERE MATCH(`param`) AGAINST ('ipsom' IN BOOLEAN MODE) то ищет только нужные строки, но о сортировке по релевантности можно забыть.

Кодировка на таблице на базе и на полях UTF8. Текст исключительно латиницей

Сервер баз данных:

Сервер: Localhost via UNIX socket
Тип сервера: MySQL
Версия сервера: 5.6.35-cll-lve - MySQL Community Server (GPL)
Версия протокола: 10
Пользователь: *********
Кодировка сервера: UTF-8 Unicode (utf8)

Веб-сервер

cpsrvd 11.64.0.24
Версия клиента базы данных: libmysql - 5.1.73
PHP расширение: mysqli
Версия PHP: 5.6.30
  • Вопрос задан
  • 781 просмотр
Решения вопроса 1
i_d_1
@i_d_1 Автор вопроса
Программист PHP
Разобрался почему так происходило у меня. У меня была одна строчка. В режиме поиска "natural language mode" в котором собственно и подсчитываеться релевантность слово выбрасываеться из поиска если оно встречаеться более чем в 50% строк. Так как строка была одна то любое слово выбрасывалась. Добавил строк с другим текстом, все заработало
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы