Как добавить индекс в столбец в существующей таблице? - PullRequest
5 голосов
/ 20 февраля 2011

Я хочу добавить индекс MySQL FULL TEXT SEARCH в существующую таблицу table1 в столбец с именем tags

Ответы [ 3 ]

3 голосов
/ 21 февраля 2011

Будьте осторожны при индексации с помощью индексов FULLTEXT.

Минимальная длина слова по умолчанию - 4

В MySQL есть список слов, которые не импортируются в индекс FULLTEXT.Этот список называется списком стоп-слов

Щелкните здесь, чтобы получить список из более чем 600 слов, исключенных из индексов FULLTEXT

Это то, что вы должны сделать перед созданием любых полнотекстовых индексов иОбход стоп-слов:

Шаг 1) Создайте список стоп-слов с помощью «a», «an», «the».

echo «a»> / var / lib / mysql / stopwords.txt
echo "an" >> /var/lib/mysql/stopwords.txt
echo "the" >> /var/lib/mysql/stopwords.txt

Шаг 2) Добавьте эти параметры в /etc/my.cnf

ft_stopword_lfile = / var / lib / mysql / stopwords.txt
ft_min_word_len = 2

Шаг 3) Служба mysql перезапустите

Шаг 4) Теперь создайте полнотекстовые индексы, которые вы хотите.

Если вы уже создали их, отбросьте их и создайте заново.

Дайте ему попытку !!!

2 голосов
/ 20 февраля 2011
CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`)

Полный синтаксис на http://dev.mysql.com/doc/refman/5.5/en/create-index.html

0 голосов
/ 21 февраля 2011

Единственная причина, которую я могу себе представить, заключается в том, что у вас есть несколько тегов, хранящихся в одной строке.Поэтому я думаю, что ваши данные выглядят примерно так:

primary key    tags
--
1              tag1, tag2, tag3, tag4
2              tag1, tag5, tag7
3              tag4, tag13

Не делайте этого.Вместо этого используйте таблицу тегов.Составной первичный ключ будет (ключ, тег).

key    tag
--
1      tag1
1      tag2
1      tag3
1      tag4
2      tag1
2      tag5
2      tag7
3      tag4
3      tag13

Конечно, так как вы не предоставили структуру таблицы или примерные данные, я мог бы быть полностью вне базы.Но, основываясь на вопросах, которые я читаю на SO каждый день, я буду удивлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...