Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: глюк с fulltext
 
 автор: technic611   (14.05.2006 в 08:48)   письмо автору
 
 

Помогите уже день мучаюсь. Устанавливаю индекс fulltext. Потом оптимизирую таблицу. Все нормально устанавливается. А когда пробую выполнить запрс. Сам запрс выполняется, но ничего найденного не отображается. Пробовал в других таблица, где fulltext уже стоит. Но как только переименую или удалю поле. Опять то же самое. Оптимизация не помогает. На сервере такая же ерунда. Пробовал заново таблицу создавать Не помогает.

SELECT * FROM 'posts' WHERE MATCH (name) AGAINST ('март')

   
 
 автор: cheops   (14.05.2006 в 11:38)   письмо автору
 
   для: technic611   (14.05.2006 в 08:48)
 

Я гляжу у вас только один элемент проиндексирован - что в нём? Март?

   
 
 автор: technic611   (14.05.2006 в 14:26)   письмо автору
 
   для: cheops   (14.05.2006 в 11:38)
 

Да не там текста много, это я ищу слово март

   
 
 автор: cheops   (14.05.2006 в 14:47)   письмо автору
 
   для: technic611   (14.05.2006 в 14:26)
 

А кодировки текста в запросе и таблице совпадают?

   
 
 автор: technic611   (15.05.2006 в 05:57)   письмо автору
 
   для: cheops   (14.05.2006 в 14:47)
 

А как это проверить?

   
 
 автор: cheops   (15.05.2006 в 10:47)   письмо автору
 
   для: technic611   (15.05.2006 в 05:57)
 

Откройте дамп как текстовый файл и посмотрите в какой кодировке сохранён русский текст?

   
 
 автор: technic611   (15.05.2006 в 12:54)   письмо автору
 
   для: cheops   (15.05.2006 в 10:47)
 

Можно попадробней, где этот дамп открыть?

   
 
 автор: cheops   (15.05.2006 в 14:51)   письмо автору
 
   для: technic611   (15.05.2006 в 12:54)
 

В любом текстовом редакторе, который позволяет выбирать кодировку для просмотра содержимого файла.

   
 
 автор: technic611   (15.05.2006 в 15:39)   письмо автору
 
   для: cheops   (15.05.2006 в 14:51)
 

А дамп этот где брать?. Я в папке mysql/data/папка название базы нашел три файла. Попробовал пооткрывать текстовым редактором. Кодировка windows(кирилица) Я правильно сделал?

   
 
 автор: cheops   (15.05.2006 в 22:12)   письмо автору
 
   для: technic611   (15.05.2006 в 15:39)
 

Перепутал ваш вопрос с соседней веткой - вам наверняка известа кодировка в которой набрано слово "Март" в SQL-запросе? Какая она и какая кодировка в таблице по данным phpMyAdmin?

   
 
 автор: technic611   (16.05.2006 в 04:27)   письмо автору
 
   для: cheops   (15.05.2006 в 22:12)
 

Так но ведь это нигде не указывается. Но я предполагаю, что текст набоан в кодировке 1251. А по данным phpMyAdmin в таблице как узнать? Там ведь нигде это не указывается. В дампе тоже нет

   
 
 автор: cheops   (16.05.2006 в 11:51)   письмо автору
 
   для: technic611   (16.05.2006 в 04:27)
 

А у вас MySQL какой версии?

   
 
 автор: technic611   (16.05.2006 в 14:44)   письмо автору
 
   для: cheops   (16.05.2006 в 11:51)
 

версия 4.0.21-nt

   
 
 автор: cheops   (16.05.2006 в 15:56)   письмо автору
 
   для: technic611   (16.05.2006 в 14:44)
 

Когда загружаете заглавную страницу phpMyAdmin, в поле Language что стоит?

   
 
 автор: technic611   (16.05.2006 в 17:15)   письмо автору
 
   для: cheops   (16.05.2006 в 15:56)
 

Russian (ru-win 1251).

   
 
 автор: cheops   (16.05.2006 в 20:06)   письмо автору
 
   для: technic611   (16.05.2006 в 17:15)
 

Так, тут всё нормально. А страница с запросом SELECT * FROM 'posts' WHERE MATCH (name) AGAINST ('март') в какой кодировке сохраняется?

   
 
 автор: technic611   (17.05.2006 в 04:46)   письмо автору
 
   для: cheops   (16.05.2006 в 20:06)
 

Дело в том что я этот запрос делал прям из окна запроса Phpmyadmin. Пишет что запрс выполнен но ничего не выводит. Я проверял кодировка тоже кириллица 1251

   
 
 автор: cheops   (17.05.2006 в 12:08)   письмо автору
 
   для: technic611   (17.05.2006 в 04:46)
 

А вы бы не могли приложить дамп таблицы posts, чтобы можно было воспроизвести ситуацию на локальной машине?

   
 
 автор: technic611   (17.05.2006 в 12:18)   письмо автору
 
   для: cheops   (17.05.2006 в 12:08)
 

-- phpMyAdmin SQL Dump
-- version 2.6.0-pl1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 19 2006 г., 17:20
-- Версия сервера: 4.0.21
-- Версия PHP: 5.0.1
--
-- БД: 'technic_tovar'
--

-- --------------------------------------------------------

--
-- Структура таблицы 'posts'
--

CREATE TABLE 'posts' (
'id_post' int(11) NOT NULL auto_increment,
'name' name NOT NULL,
'id_name' int(11) NOT NULL default '0',
PRIMARY KEY ('id_post'),
FULLTEXT KEY 'name' ('name')
) TYPE=MyISAM AUTO_INCREMENT=2 ;

--
-- Дамп данных таблицы 'posts'
--

INSERT INTO 'posts' VALUES (1, 'Холодный март 2003 г. я купил свою первую праворульную машину и это была тоета ГАЯ. Настроение было неважное, т.к. 5 марта накануне в свой день рождения помер мой тесть.\r\nПредисловие. \r\nДолгими зимними вечерами задерживаясь в офисе на работе, я штудировал интеренет в поисках оптимальной машины, лучшей чем советские жигули и неубиваемой как какой-нибудь танк. Мысль металась-вместительность, проходимость, надежность, в первую очередь двигателя. Но бюджет до 11 000, ну до 12000$. Джип однозначно отпадал. И я начал читать, какие самые, самые хорошие двигатели бывают у тоеты. Не, ну конечно сначала были сомнения-нисан,мазда, субара,мицубиси, тоета. Другие марки отпали сразу. После всяких аналитических обзоров и мнений продвинутых автовладельцев осталась одна тоета. И по двигателям перечень сужался. Наконец остался один - 3S FE. Далее я начал искать на каких машинах устанавливался этот двигатель и опять перечень....', 2);

   
 
 автор: cheops   (17.05.2006 в 12:28)   письмо автору
 
   для: technic611   (17.05.2006 в 12:18)
 

Хм... пародаксальна строка
'name' name NOT NULL,

Это вам phpMyAdmin выдал?

   
 
 автор: cheops   (17.05.2006 в 12:32)   письмо автору
 
   для: technic611   (17.05.2006 в 12:18)
 

А вспомнил - у вас же одна запись в таблице, а полнотекстовый поиск игнорирует все слова, которые встречаются более чем в 50% записей - поэтому вы так ничего не найдёте. Используйте логический режим - в нём нет такого ограничения
SELECT * FROM posts WHERE MATCH (name) AGAINST ('март' IN BOOLEAN MODE)

   
 
 автор: technic611   (17.05.2006 в 15:19)   письмо автору
 
   для: cheops   (17.05.2006 в 12:32)
 

Все работает!!! Спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования