powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / индексированный поиск по части текстового поля
2 сообщений из 2, страница 1 из 1
индексированный поиск по части текстового поля
    #32028883
Keks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подскажете, как организовать индексированный поиск по
части текстового поля. Т.е. какой
лучше создать индекс и какие запросы делать?
Спасибо.
...
Рейтинг: 0 / 0
индексированный поиск по части текстового поля
    #32030186
_NAV_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотря как ты хочешь искать. если с начала поля - то можешь построить индекс по этому полю и искать запросами вроде select * from my_table where name like 'ABC%';
только учти что это не будет работать для запросов с параметрами (т.е.вернее работать будет, но поиск будет не по индексу, а FULL SCAN)

ну а если ищешь "по вхождению" то тут если строки не очень длинные может быть стоит вспомогательную таблицу сделать и писать туда все "правые" подстроки строки например для строки
my_table
ID NAME
12 СОБАКА
записать во вспомогательную таблицу
idx_table
ID NAME
12 СОБАКА
12 ОБАКА
12 БАКА
12 АКА
12 КА
12 А

создать индекс idx_table(name) и искать подобным запросом
select * from my_table, idx_table where my_table.id=idx_table.id and idx_table.name like 'ABC%'
но тут конечно idx_table может быть огромная (фактически в ней будет столько записей, сколько символов во всех строках из name_table)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / индексированный поиск по части текстового поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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