MySQL полный текстовый поиск - PullRequest
1 голос
/ 20 марта 2010

Я хочу эффективно выполнять полнотекстовый поиск в MYSQL, используя сопоставление с. Особенно мне нужно использовать бинарные операторы (например, сопоставить некоторый текст, но не другой текст). Однако мне также нужна эффективная поддержка транзакций.
Но полнотекстовый поиск поддерживается только на MYISAM, а не на Innodb. Что делать?

Ответы [ 3 ]

1 голос
/ 20 марта 2010

Это скорее предложение, чем ответ.

Если вы собираетесь иметь большую базу данных или хотите использовать расширенные функции, не используйте полнотекстовый поиск mysql. Вы можете использовать сфинкс или люцен.

SPhinx обычно быстрее и легче, но у Lucene гораздо больше возможностей. Я лично пользуюсь Сфинксом.

1 голос
/ 20 марта 2010

При условии, что вам нужно использовать Innodb.

Я бы предложил использовать внешний инструмент поиска - sphinx или solr получили бы мой голос. Обе они последовательно возвращают лучшие результаты, чем полнотекстовый поиск mysql, и намного быстрее. Я бы сказал, что со сфинксом легче встать и уйти, особенно из mysql.

Если вы не можете установить один из них или просто не успеваете одним нажатием, вы можете переместить или дублировать только необходимые поля в таблице myisam, чтобы вы могли использовать полнотекстовый поиск mysql. *

0 голосов
/ 20 марта 2010

Вы также можете попробовать Ferret - это ruby-реализация библиотеки поиска Apache. Согласно тестам скорости, это также намного быстрее.

...