SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.05.2010 20:46:10

conceive
Участник
Зарегистрирован: 28.02.2010
Сообщений: 10

Полнотекстовый поиск в MySQL (регистр)

В справке по мускулу написано Поиск выполняется без учета регистра символов. Но у меня получается с точностью наоборот)

таблица в которой ищем

CREATE TABLE IF NOT EXISTS `catalog_table`
(
`id` BIGINT  UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`id_catalog` INT,
`id_pos` VARCHAR (255) UNIQUE,
`articul` TINYTEXT, `name` TEXT,
`descr` TEXT,
`cost` TINYTEXT,
`cost_disc` TINYTEXT,
`cost_wholesale` TINYTEXT,
`items` TINYTEXT, `hot_pos` BOOL NOT NULL DEFAULT 0,
FULLTEXT KEY `descr` (`descr`,`name`),
FULLTEXT KEY `name` (`name`)
)
ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

запрос
  $sql = "SELECT * , MATCH `name` AGAINST ('$strSearch') AS `relev` FROM `catalog_table` HAVING `relev` >0 ORDER BY `relev` DESC";

что же не так? может это где то в настройках задается? регистр важен/неважен?

заранее спасибо.

Неактивен

 

#2 29.05.2010 19:54:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Полнотекстовый поиск в MySQL (регистр)

FULLTEXT очень плохо работает с utf8, но в случае, когда сопоставление
utf8_bin, Вы сами явно говорите, что сопоставление чувствительное к
регистру.

Неактивен

 

#3 29.05.2010 20:29:05

conceive
Участник
Зарегистрирован: 28.02.2010
Сообщений: 10

Re: Полнотекстовый поиск в MySQL (регистр)

спасибо

Неактивен

 

#4 29.05.2010 21:46:41

conceive
Участник
Зарегистрирован: 28.02.2010
Сообщений: 10

Re: Полнотекстовый поиск в MySQL (регистр)

проблема регистра решена. помогло COLLATE utf8_unicode_ci.
но почему то не работают операторы. sad
например + перед словом означает что это слово должно присутствовать в каждой возвращенной строке.
плюсы просто игнорируются, может опять же, из за utf8?

Неактивен

 

#5 29.05.2010 22:11:08

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Полнотекстовый поиск в MySQL (регистр)

conceive написал:

проблема регистра решена. помогло COLLATE utf8_unicode_ci.
но почему то не работают операторы. sad
например + перед словом означает что это слово должно присутствовать в каждой возвращенной строке.
плюсы просто игнорируются, может опять же, из за utf8?

IN BOOLEAN MODE?

http://dev.mysql.com/doc/refman/5.1/en/ … olean.html

Неактивен

 

#6 29.05.2010 22:31:20

conceive
Участник
Зарегистрирован: 28.02.2010
Сообщений: 10

Re: Полнотекстовый поиск в MySQL (регистр)

Shopen написал:

IN BOOLEAN MODE?

Уже да smile
спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson