powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс для длинной строки
14 сообщений из 14, страница 1 из 1
Индекс для длинной строки
    #38663162
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть строковое свойство длиной около 1000 символов.
Вернее, раньше там были короткие записи, а теперь вот появились и длинные. Так уж вышло.
Но система не может записать индекс для этих записей - SUBSCRIPT, говорит.
Это так и задумано? Как обходите, кто сталкивался?
Длинные строки разрешены.
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38663182
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокументацияThe optional maxlen argument truncates the converted expression string to the specified number of characters when indexing or collating. For example, if you insert a long string with maxlen truncation, the full string is inserted and can be retrieved by a SELECT statement; the index global for this string is truncated to the specified length. This means that ORDER BY and comparison operations only evaluate the truncated index string. Such truncation is especially useful for indexing on strings that exceed the 255-character limit for Caché subscripts. When converting from non-Caché systems, some users encountered problems when they indexed on a VARCHAR(255) field and then tried to insert data into the table. With the maxlen argument, if you need to index on a long field, you can use the truncation length parameter.
источник Вариант решенияIndex idxs On s As SQLUPPER(100);
Property s As %VarString;
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38663512
rstr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov, если обязательно сохранить полное значение, то может сделать несколько вычисляемых полей?
[s part1=$e(val,1,100)] и т.д. и по ним сделать общий индекс [on part1,part2...]
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38663810
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А много ли пользы индексировать строку длиной 1000 символов? Разбить ее на ключевые слова и индексировать их или iFind попробовать.
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38663860
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38664201
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В генераторе отчетов x.magic сортировка делается по неограниченному числу полей. То есть, формально, таким же способом можно сортировать тексты неограниченной длины и, следовательно, строить по ним индексы))... Практическое применение, конечно, не просто найти...
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38664387
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitIndex idxs On s As SQLUPPER(100);
Property s As %VarString;
Честно говоря, и %VarString и SQLUPPER выглядят как хреновый диагноз (пару месяцев протянешь, чувак). Практической ценности нет конечно - есть практическая проблема, когда кроме значений свойства типа "Валенок", "Хрень какая-то" и т.п. стали возникать конструкции, состоящие более чем из символов) Я не виноват(
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38664553
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Можете привести пример sql запроса с условием по индексируемому полю?
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38664617
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petr0vi4444kolesov,

Можете привести пример sql запроса с условием по индексируемому полю?
Не понял вопрос. "SELECT ID from Ent where Name [ ?" например. Но у меня не доходит до этого - %Save() не выполняется по SUBSCRIPT.
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38664725
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov, так текущая ситуация какая - ваш вопрос решен ( Index Note On Note As SQLUPPER(255) ) или как обычно?
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38665026
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov ,

Для индексации "неограниченных" строк, а заодно и ускорения поиска, сто́ит попробовать iFind : 15885843 (и далее 15886647 , 15887128 )
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #38665239
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

С таким запросом толку от индекса нет. Все равно выполняется полное сканирование таблицы. Толк будет с условиями = или %STARTSWITH.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Индекс для длинной строки
    #39398163
drakut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov, столкнулись с такой же проблемой. По совету Александра Коблова будем пробовать следующее:

Index idxs On s As SQLUPPER(100) [type=bitmap] НЕЖЕЛАТЕЛЬНО Лучше у поля указывать COLLATION и индексы не трогать
...
Рейтинг: 0 / 0
Индекс для длинной строки
    #39398668
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,
Поскольку в любой СУБД есть сортировка по произвольному (теоретически, бесконечному) числу полей, то, значит есть и сортировка текстов произвольной длины, а не только 1000 символов. Работать это будет быстро, потому что на практике процесс будет заканчиваться, в большинстве случаев, на третьем или пятом "поле".
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Индекс для длинной строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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