Полный текст для поиска?

Может ли кто-нибудь рекомендовать хорошую книгу (ы)/документ (ы)/статью для полнотекстового поиска (и, возможно, индексацию в целом). Я довольно анальный, чтобы понять, что происходит за кулисами в моих приложениях, и мне трудно понять, почему Sphinx и другие внешние FTS оставляют MySQL/MyISAM в пыли.

Ответ 1

Для понимания полнотекстового поиска снизу вверх, я рекомендую "Управление гигабайтами".

http://www.cs.mu.oz.au/mg/

Ответ 2

Я нашел страницу полнотекстового поиска postgres http://www.postgresql.org/docs/8.3/static/textsearch.html очень интересную.

В частности: http://www.postgresql.org/docs/8.3/static/textsearch-intro.html

Операторы текстового поиска уже много лет существуют в базах данных. PostgreSQL имеет ~, ~ *, LIKE и ILIKE операторов для текстовых типов данных, но им не хватает многих необходимых свойств, необходимых современным информационным системам:

  • Нет лингвистической поддержки, даже для английского. Регулярные выражения недостаточно, потому что они не могут легко обрабатывать производные слова, например, удовлетворяет и удовлетворяет. Вы можете пропустить документы, содержащие удовлетворительные, хотя вы, вероятно, хотели бы найти их при поиске удовлетворения. Можно использовать OR для поиска для нескольких производных форм, но это является утомительным и подверженным ошибкам (некоторые слова могут иметь несколько тысяч производные).
  • Они не обеспечивают упорядочение (ранжирование) результаты поиска, что делает их неэффективен, когда тысячи найдены совпадающие документы.
  • Они, как правило, медленны, потому что есть нет поддержки индексов, поэтому они должны обрабатывать все документы для каждого поиск.

Ответ 3

Существует отличная бесплатная книга по поиску информации (Кристофер Д. Мэннинг, Прабхакар Рагхаван и Хинрих Шютце, "Введение в информационный поиск", Cambridge University Press, 2008), включая текстовый поиск, свободный (законно) здесь.

Ответ 4

Я бы начал с this. Это для SQL Server, но чтение не повредит, так как многие концепции, кроме деталей реализации, будут (очень вероятно) одинаковыми для БД.