Lucene против MySQL MyISAM

Теперь мы используем lucene для поиска. Однако, по сравнению с lucene, можем ли мы вместо этого использовать Mysql MyISAM.

Каковы преимущества их использования?


person rainmore    schedule 24.02.2011    source источник


Ответы (3)


С Lucene вы сможете создать (только) полнотекстовый индекс, который будет работать лучше по сравнению с полнотекстовыми запросами. Имейте в виду, что это только полнотекстовый поиск, а не полнофункциональная СУБД.

Другая поисковая система — Xapian или упакована в приложение. У меня нет личного опыта с этим, но из того, что я слышал, это идеально подходит для поиска в огромном количестве информации.

person Fokko Driesprong    schedule 24.02.2011

Вероятно, плохая идея использовать MyIsam, поскольку вы не можете устанавливать отношения внешнего ключа в своем индексе. Это также будет медленнее, чем Lucene для поиска по текстовым полям.

person ianaré    schedule 24.02.2011
comment
Я не буду использовать ни lucene, ни myISM для идентификации данных. Innodb имеет хорошую поддержку для таких вещей. Что касается полнотекстового поиска, я хотел бы знать, какой из них лучше поддерживает, а какой лучше работает. - person rainmore; 17.03.2011

Полнотекстовый поиск MyISAM не самый настраиваемый. Некоторые изменения требуют перекомпиляции MySQL.

http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html

Это также несколько ограничено, особенно если вы хотите использовать несколько полей FullText (вы не можете сказать «поле A имеет foo или поле B имеет bar» в полнотекстовом запросе - вам нужно SQL ИЛИ). Другим ограничением является фиксированный 50-процентный порог для поиска на естественном языке< /а>.

Я предполагаю, что FullText Lucene намного быстрее, поскольку Lucene была создана для выполнения этих поисков. Если ваши данные уже находятся в MySQL, вы можете попробовать MyISAM. Если вы просто хотите искать, используйте Lucene. Lucene также будет масштабироваться намного проще, чем MySQL FullText.

person schmmd    schedule 26.09.2011