Всегда индексируемая индексация / поиск MySQL для InnoDB? - PullRequest
1 голос
/ 14 июня 2010

Я использую InnoDB для таблицы MySQL, и, очевидно, запросы с использованием LIKE и RLIKE / REGEXP могут занимать много времени.

Я пробовал Spinx , и он прекрасно работает, за исключением того, что мне нужно периодически переиндексировать контекст. Я могу переиндексировать каждую минуту, но мне интересно, есть ли 1) параметр в Sphinx для постоянной индексации записей или 2) другое программное обеспечение, кроме Sphinx, которое всегда будет индексировать записи.

Я хочу, чтобы сразу после вставки или обновления записи индекс обновлялся.

Ответы [ 2 ]

3 голосов
/ 14 июня 2010

Один из проектов Apache Lucene , вероятно, подойдет вам лучше всего.

Они предназначены для создания обратных индексов для текстового содержимого, включая дополнительные возможности для некоторой обработки на естественном языке. Lucene - базовый проект, изначально написанный на Java, но теперь также портированный на .Net - он использует очень эффективное хранилище данных на основе файлов.

Для больших индексов есть проект Solr, который является в основном сервисной версией Lucene, к которой вы можете получить доступ через сервисы отдыха. Здесь также есть опции для масштабирования, например, путем разделения индексов на нескольких машинах.

0 голосов
/ 15 июня 2010
  1. Вы уверены, что ваш текст проиндексирован как полный текст?
  2. попробуйте использовать подобное или логическое совпадение вместо регулярного выражения.
...