powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / указать явно, какой индекс использовать в select-е?
10 сообщений из 10, страница 1 из 1
указать явно, какой индекс использовать в select-е?
    #38383845
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно ли это и есть ли в этом смысл для sqlite?

есличо, использую запросы для сложного поиска по текстовым поля одной таблицы, вроде:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select
title
,source
,description
,date 
from items where 
(title LIKE 
'%чеч%' 
and
title LIKE 
'%укр%'
and
title LIKE 
'%журн%')
or
(description LIKE 
'%чеч%' 
and
description LIKE 
'%укр%'
and
description LIKE 
'%журн%')
order by date desc;



создал ручками (ладно, sqliteman-ом) индексы для полей title и description (огромное текстовое поле), виснет всеравно ужос как
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38383998
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для таких запросов можно даже не заморачиваться с индексами, лучше не будет.
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384023
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, можно построить полнотекстовый индекс, если он понмиает русский, я просто не в курсе.
И запросы типа таких будут выполняться намного лучше, если конечно будет искаться не внутряенняя часть слова.
Я бы так и делал.

а еще можно сделать свой специальный индекс, но для этого надо будет делать дополнительную таблицу, содержащую побитые по буквам слова типа такого

русский
усский
сский
ский
кий
ий
й

привязать ее к исходной, проиндексировать и в ней искать.
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384042
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhДа, можно построить полнотекстовый индекс, если он понмиает русский, я просто не в курсе.
И запросы типа таких будут выполняться намного лучше, если конечно будет искаться не внутряенняя часть слова.


не совсем понял мысль
слово может содержаться внутри текста, и - да! - это может быть и часть "лексического" слова: дизельпанк овые, и т.д.
сейчас уже подумываю чтобы сделать импорт - вернее, регулярный импорт! - в postgree, скорости поиска ради, но объем работы и количество доступного времени оставаливают пока что :(
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384051
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФрилансерWinnipuhДа, можно построить полнотекстовый индекс, если он понмиает русский, я просто не в курсе.
И запросы типа таких будут выполняться намного лучше, если конечно будет искаться не внутряенняя часть слова.


не совсем понял мысль
слово может содержаться внутри текста, и - да! - это может быть и часть "лексического" слова: дизельпанк овые, и т.д.
сейчас уже подумываю чтобы сделать импорт - вернее, регулярный импорт! - в postgree, скорости поиска ради, но объем работы и количество доступного времени оставаливают пока что :(

и что даст PGSQL?

делайте полнотекстовый индекс, потому что собственно и в постгресе это будет тоже лучшее решение.

теперь по "не совсем понял мысль":

дизельпанк овые

Я имел в виду, что если юзер будет искать в данном примере

диз ель панковые
диз ельпанк овые

и т.д. то в этом случае ни обычные, ни полнотекстовые индексы не помогут.

А так ваша задача - для полнотекстового поиска.
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384067
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote Winnipuh]Фрилансерпропущено...
и что даст PGSQL?


как минимум - какой-то оптимизатор запросов (и кэш) + демон-сервис, адекватно работающий с памятью/потоками/прочее

Winnipuhделайте полнотекстовый индекс, потому что собственно и в постгресе это будет тоже лучшее решение.


ну я сделал индексы для полей поиска через sqliteman, вот что он мне говорит о нем:
Код: sql
1.
2.
-- Описать ITEMS_IDX_DESC
CREATE INDEX "items_idx_desc" on items (description ASC)


это оно?
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384175
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрилансерсоздал ручками (ладно, sqliteman-ом) индексы для полей title и descriptionсоздать индексы ты, конечно, можешь, только использовать их like не сможет
потому - или full text search, или full scan :-)
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384187
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Фрилансер]Winnipuhпропущено...


как минимум - какой-то оптимизатор запросов (и кэш) + демон-сервис, адекватно работающий с памятью/потоками/прочее

пропущено...


ну я сделал индексы для полей поиска через sqliteman, вот что он мне говорит о нем:
Код: sql
1.
2.
-- Описать ITEMS_IDX_DESC
CREATE INDEX "items_idx_desc" on items (description ASC)


это оно?

не...

вот
http://www.sqlite.org/fts3.html
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38384191
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот еще коротко, там ссылка на книжку есть, ее найдите, полезная бывает.

http://answers.oreilly.com/topic/1955-how-to-use-full-text-search-in-sqlite/
...
Рейтинг: 0 / 0
указать явно, какой индекс использовать в select-е?
    #38392774
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
WinnipuhДа, можно построить полнотекстовый индекс, если он понмиает русский, я просто не в курсе.

Эскулайт хранит строки в уникоде, так что для токенайзера без разницы, какой язык. Если стеммер русский интересует, то я уже давно сделал модуль [ http://sqlite.mobigroup.ru/timeline?r=mbg-fts3%5D]http://sqlite.mobigroup.ru/timeline?r=mbg-fts3]
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / указать явно, какой индекс использовать в select-е?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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