Вопрос

Я изучаю возможность реализации полнотекстового поиска в нашей базе данных Firebird.Нашими требованиями являются:

  1. Каждое поле в нескольких таблицах должно быть проиндексировано.Когда результат будет найден, мы сможем узнать исходную таблицу.
  2. Индекс может храниться в базе данных или в файловой системе.
  3. Результаты поиска (первичные ключи BigInt) должны использоваться для объединения с исходными записями в базе данных для отображения записей в таблице.

Кто-нибудь может порекомендовать достойный способ достичь того, что нам нужно?Я рассматривал возможность какой-то интеграции DotLucence в Delphi, но на самом деле не могу найти много информации о том, как это сделать.

Это было полезно?

Решение

Вот несколько ресурсов, которые вам следует рассмотреть:

  • Сфинкс очень мощная и популярная бесплатная полнотекстовая поисковая система с открытым исходным кодом.
  • Текстовое решение Полнотекстовый поиск по Interbase и Firebird.
  • Объекты IBObjects Модуль полнотекстового поиска ("Нечеткий поиск"), полностью рабочий модуль, который может быть использован для настройки ваших поисковых индексов или в качестве модели для вашей собственной пользовательской реализации.
  • Рубикон это надстройка Delphi, которая позволяет вам использовать возможности полнотекстового поиска в ваших приложениях.
  • Полнотекстовый поиск Firebird SQL От Дэна Летеки в CodeProject с использованием полнотекстовой поисковой системы DotLucene.
  • Mutis является портом Delphi поисковой системы Lucene.Предоставьте гибкий API для индексации, каталога и поиска текстовой информации с высокой производительностью.Отлично подходит для внедрения пользовательских поисковых систем, исследований, поиска текста, интеллектуального анализа данных и многого другого.

Существует вилка Жар - птицы код, созданный компанией под названием Red Soft.Он лицензирован по той же лицензии, что и Firebird, поэтому вы можете ознакомиться с их версией, которая может поддерживать полнотекстовый поиск с использованием движка Lucene engine через интерфейсы JavaVM.

Вы также можете прочитать статью под названием "Полнотекстовый поиск в Firebird без полнотекстовой поисковой системы" Бьорна Реймера и Дирка Баумайстера, представленный на 4-й конференции Firebird.

Другие советы

Я думаю, у вас возникнут проблемы с требованием 2:Индекс может храниться в базе данных или в файловой системе.Большинство служб индексирования создают свой собственный индексный файл, в котором данные хранятся высокооптимизированным способом.Если вы действительно этого хотите, возможно, можно загрузить и сохранить индекс в одно blob-поле, но я действительно не вижу причины для этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top