Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / CORE-734 // Full text indexing / search / 8 сообщений из 8, страница 1 из 1
02.02.2021, 10:31
    #40040795
Dorin Marcoci
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Добрый день!

Собственно про http://tracker.firebirdsql.org/browse/CORE-734

Есть ли в отдаленных планах реализацию хотя бы быстрый примитивный метод, без лексики/морфологию?
В одном проэкте выбираем DBMS, делаем таблицу сравнений для клиента, это пока минус Файра.
Если инстанс один/два можно было в связки с каким нибуд эластик или сфинкс, но инстансов много, 250+.
Есть несколько текст блобов по которым нужен поиск. Спрошу, может готовы немного профинансировать.

И еще как хотелку, утилита типа как в постгри, типа pg_upgrade, или может как свитч в gbak, одним махом апдэйтить базу.
...
Рейтинг: 0 / 0
02.02.2021, 10:40
    #40040797
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Dorin Marcoci,

можно прикрутить внешний полнотекстовый поиск. Собственно сборку сфинкса под Firebird Влад периодически выкладывает.
Но можно и любой другой прикрутить. Если надо более тесную интеграцию можно написать внешние UDR
...
Рейтинг: 0 / 0
02.02.2021, 11:11
    #40040804
Dorin Marcoci
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Симонов Денис,

Так я написал что инстансов много, маленькие оффисы, деплой и апдэйты автоматические.
А ставить и поддержать еще Сфинкс будет сложновато. Данные не очень много.
Когда например какой то сервис на один/пару серверов то да, через сфинкс лучше.

Буду предлагать вариант через доп таблицу и UDR..
...
Рейтинг: 0 / 0
02.02.2021, 11:28
    #40040812
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Dorin Marcoci,

не обязательно сфинкс. Можно любой другой полнотекстовый поиск прикрутить. UDR тут нужен разве что для того чтобы внутри SQL проще использовать было.

Можно сделать набор внешних ХП и функций по аналогии с Red Database
...
Рейтинг: 0 / 0
02.02.2021, 12:43
    #40040840
Dorin Marcoci
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Я думал UDR для разбиения слов и потом вставку в доп таблицу, где потом "starting".
Хотя разбивку уже можно и PLSQLом, добавили достаточно встроенных функций.
А что, думаешь эластик будет проще деплоить и держать синхронизацию с базой? ;)
Если бы был хотябы какое-то встроенное простое разбиение на слов/токенизацию и индекс по этим словам было бы очень классно.
Видел в РедDB есть связка с Lucene, но таскать за собой всю джаву, и еще одно зависимость как внешний модуль даже не знаю...
...
Рейтинг: 0 / 0
02.02.2021, 13:07
    #40040849
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Dorin Marcoci,

не обязательно именно Lucene использовать. Я говорю взять за основу идею. Прикрутить можно к чему угодно.

Обновлять/синхронизировать можно либо кроном, что дорого (перечитывать огромные таблицы в поисках изменений). Либо повесить на эти таблицы триггеры, которые отправляют сообщение в очередь с "просьбой" переидексировать поля записи.
...
Рейтинг: 0 / 0
02.02.2021, 13:28
    #40040855
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
А в четвёрке на это можно плагин репликации запрячь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.02.2021, 13:29
    #40040856
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CORE-734 // Full text indexing / search
Dorin MarcociЯ думал UDR для разбиения слов и потом вставку в доп таблицу, где потом "starting".

это не совсем полнотекстовый поиск. Но кое что можно сделать в этом направлении.

1. Разбиение текста на слова
2. Каталог слов
3. Таблица индексов (таблица, слово, блоб с идентификаторами записей)
4. Процедура которая по фразе выдаёт список идентификаторов и коэффициент совпадения (совпавшее/общее кол-во слов во фразе)

будет что-то типа

Код: sql
1.
2.
3.
4.
5.
select
  t.*
from text_search('MyTable', 'мама мыла раму') ts
join t on t.id = ts.id
order by ts.k desc
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / CORE-734 // Full text indexing / search / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]