полнотекстовый поиск mysql

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


person user121196    schedule 20.03.2010    source источник


Ответы (3)


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

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

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

person benlumley    schedule 20.03.2010
comment
хороший совет, но я не могу перемещать или дублировать таблицы/столбцы, мне нужно удалить совпадающие результаты после поиска, предпочтительно в одном операторе SQL. - person user121196; 20.03.2010

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

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

SPhinx в целом быстрее и легче, но у Lucene гораздо больше возможностей. Лично я использую Sphinx.

person TIMEX    schedule 20.03.2010
comment
Используйте Lucene, так как Lucene основана на Java. - person TIMEX; 20.03.2010
comment
Вы можете использовать любой язык с lucene или sphinx. Дело в том, что настройка Lucene основана на Java. - person TIMEX; 20.03.2010
comment
можно ли прошивку и обновление сделать не проходя через них? как любой язык может их использовать? будут ли они постоянно обновлять индексы? - person user121196; 20.03.2010

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

person Maz    schedule 20.03.2010