|
|
|
| Для начала скажу, что я далек от индексов так, что пожалуйста пишите яснее.
Проблема такая, почему то я не могу осуществить поиск с помощью полнотекстогого поиска. Вначале я создаю индекс
ADD FULLTEXT 'together' (
'text' ,
'title' ,
'title_hide' ,
'name' ,
'description'
)
|
Потом пытаюсь осуществиь поиск с помощью кода
select * from glavtext where match(together) against('что-то');
|
но он мне выводит ошибку Unknown column 'together' in 'where clause'. Помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: Ziq
(16.04.2005 в 23:01)
| | Хм... ну вообще-то всё правильно... но первый запрос должен выглядеть примерно так
ALTER TABLE glavtext ADD FULLTEXT together (
'text' ,
'title' ,
'title_hide' ,
'name' ,
'description'
)
|
Он не сообщает вам об ошибке или запрос выглядит именно так, а вы его просто сократили? | |
|
|
|
|
|
|
|
для: cheops
(16.04.2005 в 23:52)
| | На самом деле я пользуюсь phpMyAdmin и SQL запрос примерно такой
ALTER TABLE 'glavtext' DROP INDEX 'together' ,
ADD FULLTEXT 'together' (
'text' ,
'title' ,
'title_hide' ,
'name' ,
'description'
)
|
Я просто не стал писать полностью. | |
|
|
|
|
|
|
|
для: Ziq
(17.04.2005 в 08:09)
| | Да, кстати в phpMyAdmin этот индекс отображается, но количество элементов в нем равно "нет", а у индекса primary "1". Всего в таблице 1 элемент.
Да, и еще может я как-то не так вставляю текст, я пользуюсь кодом
$query_on_add = "insert into glavtext values (null,'$name','$url','$description','$keywords','$title','$title_hide','$meta','$text','$hide','$robots',$id_glav,NOW());";
|
| |
|
|
|
|
|
|
|
для: Ziq
(17.04.2005 в 08:14)
| | Это сложно сказать без таблицы перед глазами, не могли бы вы привести дамп таблицы (оператор CREATE TABLE), который можно получить в разделе Экспорт phpMyAdmin. | |
|
|
|
|
|
|
|
для: cheops
(17.04.2005 в 12:00)
| | Вот дамп:
CREATE TABLE 'glavtext' (
'id_text' int(11) NOT NULL auto_increment,
'name' tinytext,
'url' tinytext,
'description' text NOT NULL,
'keywords' text NOT NULL,
'title' tinytext NOT NULL,
'title_hide' tinytext NOT NULL,
'meta' text,
'text' text NOT NULL,
'hide' enum('s','h') default NULL,
'robots' enum('all','none','noindex','index','follow','nofollow','follow,noindex','index,nofollow') default NULL,
'id_glav' mediumint(9) default NULL,
'dt' datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY ('id_text'),
FULLTEXT KEY 'together' ('text','title','title_hide','name','description')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
|
Да, кстати есть ли смысл изменять CHARSET=latin. | |
|
|
|
|
|
|
|
для: Ziq
(17.04.2005 в 22:12)
| | Да вроде крамолы нет, а какую ошибку пишет?
Смысл менять CHARSET=latin на русскую кодировку есть, так как иначе правила для сортировки будут применятся английские, что приведёт к неправильной сортировке. Если база затем будет переносится на MySQL версии ниже 4.1, то этот параметр следует вообще убрать, так как MySQL более старых версий его не поймёт. | |
|
|
|
|
|
|
|
для: cheops
(17.04.2005 в 22:53)
| | Слушай, Cheops, а какой кодировкой ты поьзуешься и как мне теперь изменить.
А про ошибку я уже писал Unknown column 'together' in 'where clause' | |
|
|
|
|
|
|
|
для: Ziq
(18.04.2005 в 07:29)
| | 1) Это зависит от того, в какой кодировке хранятся данные в таблице: KOI8-R или cp1251. Посмотреть поддерживаемые кодировки в MySQL версии 4.1 можно при помощи запроса
Изменить кодировку по умолчанию для таблицы можно при помощи оператора ALTER TABLE
ALTER TABLE glavtext DEFAULT CHARACTER SET 'cp1251';
|
ALTER TABLE glavtext DEFAULT CHARACTER SET 'koi8r';
|
2) А вы средствами phpMyAdmin выставляете ключ FULLTEXT? | |
|
|
|
|
|
|
|
для: cheops
(18.04.2005 в 13:08)
| | Нет я делал с помощью с помощью командной строки. | |
|
|
|
|
|
|
|
для: Ziq
(18.04.2005 в 13:17)
| | Дело в том, что там можно просто мышью щёлкнуть на те столбцы, которые должны быть индексированы FULLTEXT... | |
|
|
|
|
|
|
|
для: cheops
(18.04.2005 в 13:30)
| | Cheops, я прикрепил PrintScreen indexов. И я что-то не понял твой последний ответ. | |
|
|
|
|
|
|
|
для: Ziq
(18.04.2005 в 14:29)
| | Смотрю я через phpMyAdmin и никак понять не могу, почему количество элементов в индексе PRIMARY 1, а в FULLTEXT нет? Решил проивести эксперимент создал таблицу и туда занес пять элементов и опять в PRIMARY 5, а в FULLTEXT нет. Что делать? может я просто как-то не так добавляю значения? Я пользуюсь
insert into table values ('...
|
Помогите пожалуйста я в панике. | |
|
|
|
|
|
|
|
для: Ziq
(18.04.2005 в 16:59)
| | Вообщем проблему я решил но не совсем. Проблема была в том, что он не понимал имя together, надо было просто использовать имя Match(text,title,title_hide,name,description). Но возникла еще одна проблемка этот индекс FULLTEXT кушает много места у меня на три маленьких текста заняло 4Kb. Подскажи, Cheops, сколько у тебя занимает полнотекстовый поиск по сайту. | |
|
|
|
|
|
|
|
для: Ziq
(18.04.2005 в 19:20)
| | Индексы жрут очень много места, зачастую объём занимаемый индексными файлами превышает объём данных в несколько раз. Например, объём данных этого форума составляет 9 Мб, с учётом индексов - 16 Мб. | |
|
|
|
|
|
|
|
для: cheops
(18.04.2005 в 23:42)
| | 16 Mb это весь текст форума. | |
|
|
|
|
|
|
|
для: Ziq
(19.04.2005 в 07:01)
| | Нет, весь текст форума - 9 Мб, 16Мб - это объём занимаемый базой на диске. | |
|
|
|