Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
Система ИРБИС в целом :  ИРБИС Irbis
 
Новый механизм актуализации
Пользователь: slay (IP-адрес скрыт)
Дата: 29, November, 2012 10:27

Если, верить документации (а конкретно документу RELEASE_12_1.doc), то новый файл db_name.IFS, при "создать словарь полностью" не используется, а вот на самом деле получается, что не используется старий (который db_name.FST). Версия 2012.1D1.

Можно уточнить какой из них надо менять на самом деле?

Чтобы не плодить несколько тем, еще один мелкий вопрос:
Тестируя новую версию, обратил внимание на то, что при отборе есть много ключей без префикса... Это нормально или это ошибки форматов/данных в записи?



Редактировано 1 раз. Последний раз 29.11.2012 10:32 пользователем slay.

Re: Новый механизм актуализации
Пользователь: Alio (IP-адрес скрыт)
Дата: 29, November, 2012 10:45

slay написал(а):
-------------------------------------------------------
> Если, верить документации (а конкретно документу
> RELEASE_12_1.doc), то новый файл db_name.IFS, при
> "создать словарь полностью" не используется,
Именно так. Он используется ТОЛЬКО при АКТУАЛИЗАЦИИ


а вот
> на самом деле получается, что не используется
> старий (который db_name.FST). Версия 2012.1D1.
Ничего подобного.


> Можно уточнить какой из них надо менять на самом
> деле?
Оба - причем синхронно.

Re: Новый механизм актуализации
Пользователь: slay (IP-адрес скрыт)
Дата: 29, November, 2012 17:07

Alio написал(а):
-------------------------------------------------------
> а вот
> > на самом деле получается, что не используется
> > старий (который db_name.FST). Версия 2012.1D1.
> Ничего подобного.
>
Взял и проверил: удаляем FST файл, запускаем полное создание словаря - все работает. Т.е. используется только IFS файл... При работе в "каталогизаторе" тоже самое.

Как по мне, то вводить новый файл нет никакой надобности. Вполне достаточно привести старый к новому виду.

Re: Новый механизм актуализации
Пользователь: goirvi (IP-адрес скрыт)
Дата: 21, January, 2013 08:07

Здравствуйте, уважаемые разработчики!
С недавнего времени наша библиотека работает на ИРБИС64, версия 2012.1 Вопрос по файлу ibis.ifs.
В RELEASE_12_1.doc читаем:
"...В таблице актуализации - в первом элементе дополнительно к точке входа указываются (через запятую) МЕТКИ полей, имеющих отношение к данной строке (т.е. метки тех полей, которые используются в соответствующем формате - третьем элементе таблицы). Схематичный пример строки таблицы инвертирования:
100 0 .....v100......v200......v300....
Ей будет соответствовать следующая строка таблицы актуализации:
100,100,200,300 0 .....v100......v200......v300.... "

В дистрибутивах видим:

ibis.fst:
...
690 0 (if p(v690) then if v690^l*1.1='.'or v690^l*1=''then|SU= |v690^l else |SU=|v690^l fi fi/)/(if p(v330) then if v330^l*1.1='.'or v330^l*1=''then|SU= |v330^l else |SU=|v330^l fi fi/)/if v920:'NJ' then (if p(v922) then if v922^l*1.1='.'or v922^l*1=''then|SU= |v922^l else |SU=|v922^l fi fi/) fi239 0 (|ST=|v239|%|/)
230 0 if p(v230) then if a(v239) then (if &unifor('1*R; ?v230^d#1')<>''then/'ST='&unifor('1*R; ?v230^d#1') fi,|%|d230)/(if &unifor('1*R; ?v230^d#2')<>''then/'ST='&unifor('1*R; ?v230^d#2') fi,|%|d230)/(if &unifor('1*R; ?v230^d#3')<>''then/'ST='&unifor('1*R; ?v230^d#3') fi,|%|d230) fi fi
39 0 MHL,"RD=EX"d398/"RD=PA"d395/"RD=PV"d396/"RD=SH"d399/"RD=TI"d397/"RD=AF"d391/"RD=PI"d481/"RD=OK"d316/"RD=PK"d317/"RD=DK"d318
907 0 if v920='J' then else if &unifor('Korg.mnu|8'):'1'then (if v907^b<>''then|TH=|v907^b,if v907^c:'штр'then|-|v907^c fi,|-|v907^a fi/if v907^a<>''then|TH=|v907^a,|-|v907^b fi,|%|d907/) fi fi
910 0 if &unifor('Korg.mnu|7'):'1'or &unifor('IPRIVATE,PROVFOND,')='1'or &unifor('IMAIN,PROVFOND,')='1'then (if p(v910)then if v910^a:'6' and a(v910^w) or '2 7':v910^a then else if &unifor('Av920#1')='NJ'or &unifor('Av920#1')='NJP'then |INP=|v910^h,if p(v910^h) then|П|d910^s,|(|v910^0,if p(v910^s)then| из |v910^1 fi,|)|d910^0,if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^h|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^h fi fi else |INP=|v910^b,if p(v910^b) then|П|d910^s,|(|v910^0,if p(v910^s)then| из |v910^1fi,|)|d910^0if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^b|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^b fi fi/|INP=|v910^h,if p(v910^h) then|П|d910^s,|(|v910^0|)|,if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^h|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^h fi fi fi/if a(v910^s) then'INP=не проверены 'v910^d fi/if p(v910^!) then'INP=не на месте ('v910^!')'fi/|INP=проверены |d910^s,v910^s*6.2|.|,v910^s*4.2|.|,v910^s.4,fi fi,|%|d910/)fi
80 0 if &unifor('IMAIN,ATHRSAK,')='1'then (if p(v606) then '?',if v606:'^a' and v606^b='' and v606^G='' and v606^H='' and v606^9='' and v606^a*27=''then v606^a else v606^a.10, &unifor(|+B|v606^a*10)fi,if v606^d='' and v606^b*10='' and v606^b<>''then v606^b else v606^b.1,&unifor(|+B|v606^B*1) fi,&unifor(|+B|v606^c),&unifor(|+B|v606^d),&unifor(|+B|v606^G),&unifor(|+B|v606^E),&unifor(|+B|v606^O),&unifor(|B|v606^H),&unifor(|+B|v606^9) fi/) fi
80 0 if &unifor('IMAIN,ATHRSAK,')='1'then (if p(v607) then '?',if v607:'^a' and v607^b='' and v607^G='' and v607^H='' and v607^9='' and v607^a*27=''then v607^a else v607^a.10, &unifor(|+B|v607^a*10)fi,if v607^d='' and v607^b*10='' and v607^b<>''then v607^b else v607^b.1,&unifor(|+B|v607^B*1) fi,&unifor(|+B|v607^c),&unifor(|+B|v607^d),&unifor(|+B|v607^G),&unifor(|+B|v607^E),&unifor(|+B|v607^O),&unifor(|B|v607^H),&unifor(|+B|v607^9) fi/) fi
...


ibis.ifs:
...
330,922,690 0 (if p(v690) then if v690^l*1.1='.'or v690^l*1=''then|SU= |v690^l else |SU=|v690^l fi fi/)/(if p(v330) then if v330^l*1.1='.'or v330^l*1=''then|SU= |v330^l else |SU=|v330^l fi fi/)/if v920:'NJ' then (if p(v922) then if v922^l*1.1='.'or v922^l*1=''then|SU= |v922^l else |SU=|v922^l fi fi/) fi
239,239 0 (|ST=|v239|%|/)
239,230 0 if p(v230) then if a(v239) then (if &unifor('1*R; ?v230^d#1')<>''then/'ST='&unifor('1*R; ?v230^d#1') fi,|%|d230)/(if &unifor('1*R; ?v230^d#2')<>''then/'ST='&unifor('1*R; ?v230^d#2') fi,|%|d230)/(if &unifor('1*R; ?v230^d#3')<>''then/'ST='&unifor('1*R; ?v230^d#3') fi,|%|d230) fi fi
398,395,396,399,397,391,481,316,317,318,39 0 MHL,"RD=EX"d398/"RD=PA"d395/"RD=PV"d396/"RD=SH"d399/"RD=TI"d397/"RD=AF"d391/"RD=PI"d481/"RD=OK"d316/"RD=PK"d317/"RD=DK"d318
920,907 0 if v920='J' then else if &unifor('Korg.mnu|8'):'1'then (if v907^b<>''then|TH=|v907^b,if v907^c:'штр'then|-|v907^c fi,|-|v907^a fi/if v907^a<>''then|TH=|v907^a,|-|v907^b fi,|%|d907/) fi fi
920,910 0 if &unifor('Korg.mnu|7'):'1'or &unifor('IPRIVATE,PROVFOND,')='1'or &unifor('IMAIN,PROVFOND,')='1'then (if p(v910)then if v910^a:'6' and a(v910^w) or '2 7':v910^a then else if &unifor('Av920#1')='NJ'or &unifor('Av920#1')='NJP'then |INP=|v910^h,if p(v910^h) then|П|d910^s,|(|v910^0,if p(v910^s)then| из |v910^1 fi,|)|d910^0,if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^h|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^h fi fi else |INP=|v910^b,if p(v910^b) then|П|d910^s,|(|v910^0,if p(v910^s)then| из |v910^1fi,|)|d910^0if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^b|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^b fi fi/|INP=|v910^h,if p(v910^h) then|П|d910^s,|(|v910^0|)|,if 'C U':v910^a and p(v910^s) and val(v910^1)>val(v910^0)then /|INP=|v910^h|(|,f(val(v910^1)-val(v910^0),0,0),if p(v910^s)then| из |v910^1fi,|)|d910^h fi fi fi/if a(v910^s) then'INP=не проверены 'v910^d fi/if p(v910^!) then'INP=не на месте ('v910^!')'fi/|INP=проверены |d910^s,v910^s*6.2|.|,v910^s*4.2|.|,v910^s.4,fi fi,|%|d910/)fi
606,80 0 if &unifor('IMAIN,ATHRSAK,')='1'then (if p(v606) then '?',if v606:'^a' and v606^b='' and v606^G='' and v606^H='' and v606^9='' and v606^a*27=''then v606^a else v606^a.10, &unifor(|+B|v606^a*10)fi,if v606^d='' and v606^b*10='' and v606^b<>''then v606^b else v606^b.1,&unifor(|+B|v606^B*1) fi,&unifor(|+B|v606^c),&unifor(|+B|v606^d),&unifor(|+B|v606^G),&unifor(|+B|v606^E),&unifor(|+B|v606^O),&unifor(|B|v606^H),&unifor(|+B|v606^9) fi/) fi
607,80 0 if &unifor('IMAIN,ATHRSAK,')='1'then (if p(v607) then '?',if v607:'^a' and v607^b='' and v607^G='' and v607^H='' and v607^9='' and v607^a*27=''then v607^a else v607^a.10, &unifor(|+B|v607^a*10)fi,if v607^d='' and v607^b*10='' and v607^b<>''then v607^b else v607^b.1,&unifor(|+B|v607^B*1) fi,&unifor(|+B|v607^c),&unifor(|+B|v607^d),&unifor(|+B|v607^G),&unifor(|+B|v607^E),&unifor(|+B|v607^O),&unifor(|B|v607^H),&unifor(|+B|v607^9) fi/) fi
...

Вопрос: в файле ibis.ifs точка входа должна стоять ПЕРВОЙ или порядок не важен?

С уважением, Гончарова И. В.
ГУНБ Красноярского каря.

Re: Новый механизм актуализации
Пользователь: Alio (IP-адрес скрыт)
Дата: 21, January, 2013 08:10

Обязательно первой...

Re: Новый механизм актуализации
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 21, January, 2013 10:25

Возьмите исправленный IBIS.IFS

Вложения: ibis.ifs (74.6KB)  
Re: Новый механизм актуализации
Пользователь: goirvi (IP-адрес скрыт)
Дата: 21, January, 2013 13:14

Спасибо.

Re: Новый механизм актуализации
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, April, 2013 11:33

Как работает новый механизм актуализации?
Новый: только при существующей записи (например, при сохранении)
Старый: только для первоначальной актуализации.
Разъясните, пожалуйста, когда применять тот или иной механизм. Не могу понять в чем преимущество.

Re: Новый механизм актуализации
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, April, 2013 11:49

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

AVD System, Техническая поддержка, [www.open4u.ru]



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.