SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Полнотекстовый поиск для Firebird (Обсуждение UDR FTS Lucene)
Полнотекстовый поиск для Firebird [сообщение #96] Mon, 27 June 2022 09:39 Переход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
Хочу представить OpenSource UDR для полнотекстового поиска на основе Lucene++.

https://github.com/IBSurgeon/lucene_udr

Документация на русском языке README_RUS.md

UDR FTS Lucene написана на языке C++, обладает высокой производительностью. Может быть использована в Firebird 3.0 и 4.0.

Пожелания по функционалу (адекватные) и сообщения об ошибках приветствуются.

[Обновления: Tue, 28 June 2022 13:51]

Известить модератора

Re: Полнотекстовый поиск для Firebird [сообщение #104 является ответом на сообщение #96] Tue, 28 June 2022 23:48 Переход к предыдущему сообщениюПереход к следующему сообщению
Док в настоящее время не в онлайне  Док
Сообщений: 94
Зарегистрирован: June 2022
Member
В тележном чате FirebirdSQL вопрос поднимался в комментах, есть ли возможность сделать в виде встроенной функции на перспективу. Ы?

FPC/Lazarus (trunk) | Win10 x64 Ultim/Debian 11 amd64/Darwin x86_64 Monterey | Firebird 3.0.10 x64 | IBX by Rik
Re: Полнотекстовый поиск для Firebird [сообщение #108 является ответом на сообщение #104] Wed, 29 June 2022 14:34 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
В теории есть. Но если это кто и будет делать, то не я.
С самим Lucene++ есть проблемы в плане совместимости лицензий.
Re: Полнотекстовый поиск для Firebird [сообщение #273 является ответом на сообщение #104] Fri, 05 August 2022 18:54 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 531
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
Док писал(а) Tue, 28 June 2022 23:48
В тележном чате FirebirdSQL
это где?

Re: Полнотекстовый поиск для Firebird [сообщение #280 является ответом на сообщение #273] Mon, 08 August 2022 13:42 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
https://t.me/fb_friday - пятница в телеге

Re: Полнотекстовый поиск для Firebird [сообщение #287 является ответом на сообщение #280] Tue, 09 August 2022 12:38 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
Вышла новая версия IBSurgeon Full Text Search UDR 1.1

Что нового:

- отдельный анализатор для английского языка со стемминогом (PorterStemming), ранее анализатор полностью совпадал с StandardAnalyzer;
- добавлены Snowball анализаторы;
- добавлена хранимая процедура FTS$ANALYZE для разбиения текста на термы согласно заданному анализатору.

https://github.com/IBSurgeon/lucene_udr
https://github.com/IBSurgeon/lucene_udr/releases/tag/1.1
Re: Полнотекстовый поиск для Firebird [сообщение #423 является ответом на сообщение #287] Thu, 01 September 2022 10:25 Переход к предыдущему сообщениюПереход к следующему сообщению
RusMikle в настоящее время не в онлайне  RusMikle
Сообщений: 18
Зарегистрирован: June 2022
Junior Member
Вопрос по поводу IBSurgeon Full Text Search UDR 1.1:
Как у него с немецким?
Спасибо.
Re: Полнотекстовый поиск для Firebird [сообщение #424 является ответом на сообщение #423] Thu, 01 September 2022 12:46 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
Анализатор для немецкого есть. Можно скачать и попробовать.

Но я пока рекомендую не ставить в продакшн. Там очень неприятный баг с многопоточностью вышел наружу. Сейчас правлю. Надеюсь за пару дней разберусь и выпущу новую версию.
Re: Полнотекстовый поиск для Firebird [сообщение #429 является ответом на сообщение #424] Thu, 01 September 2022 16:55 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
Исправил
Re: Полнотекстовый поиск для Firebird [сообщение #1208 является ответом на сообщение #96] Tue, 27 December 2022 20:21 Переход к предыдущему сообщениюПереход к следующему сообщению
afgm в настоящее время не в онлайне  afgm
Сообщений: 1
Зарегистрирован: December 2022
Junior Member
В lucene++ trigram analyzer нет, как понимаю?
Для поиска по исходникам в блобах (точные совпадения) лучше тогда использовать SIMPLE или WHITESPACE, и с дополнительной проверкой на содержимое?
Мне нужно именно точное совпадение. Идеальным примером является триграммный индекс в PostgreSQL.
Re: Полнотекстовый поиск для Firebird [сообщение #1209 является ответом на сообщение #1208] Tue, 27 December 2022 20:33 Переход к предыдущему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 148
Зарегистрирован: June 2022
Senior Member
Скорее всего WHITESPACE, но я бы лучше провёл эксперимент.

Посмотреть список анализаторов

select *
from FTS$MANAGEMENT.FTS$ANALYZERS
А дальше вызывать

select *
from FTS$ANALYZE(blob, analyzer)
с разными анализаторами. Эта процедура разбивает текст на индексируемые термы. Вот тут можно посмотреть как какой анализатор работает.

Потом на основе наиболее подходящего можно создать свой анализатор со своим списком стоп слов
Предыдущая тема: Архив "старого" скруля
Следующая тема: Как определить причину тормозов Firebird за 95 минут?
Переход к форуму:
  


Текущее время: Sat Sep 30 08:25:18 GMT+3 2023

Общее время, затраченное на создание страницы: 0.00702 секунд