Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Буква Е и Ё
Пользователь: flame (IP-адрес скрыт)
Дата: 19, December, 2014 12:42

Здравствуйте! При поиске в каталоге, буквы Ё и Е воспринимаются разными буквами. Например, если мы ищем книгу с названием "Аленушкины сказки", то нам выдается список книг, а если же запрос - "Алёнушкины сказки", то выходит, что ничего не найдено.



Редактировано 1 раз. Последний раз 19.12.2014 12:44 пользователем flame.

Re: Буква Е и Ё
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 19, December, 2014 19:24

Обычно буква Ё упраздняется при написании слов, где она содержится. Но вы можете принудительно ее заменить Ё -> Е, используя функцию &uf('+9I и включить исходный вариант данных и данные, которые подверглись замене. Тогда в этом случае ссылка, например, на автора будет доступна.

Re: Буква Е и Ё
Пользователь: Novinka (IP-адрес скрыт)
Дата: 18, May, 2016 07:27

Мне обработка говорит, что они обязаны вводить в точном соответствии с титульным листом, плюс человеческий фактор, поэтому е и ё сосуществуют в базе.
Как можно обеспечить разночтение в заглавии? Чтобы Алёнушкины находились и Аленушкины в одном поиске.

Нашла 517 поле - разночтение заглавий. Поиск работает. Так можно?



Редактировано 4 раз. Последний раз 18.05.2016 08:36 пользователем Novinka.

Re: Буква Е и Ё
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 18, May, 2016 09:27

Думаю, можно и так, дополнительно вводить и хранить вариант в записи. Но не уверен, что именно это поле надо использовать. А что технологи говорят?

Re: Буква Е и Ё
Пользователь: Novinka (IP-адрес скрыт)
Дата: 19, May, 2016 04:15

Тоже хочу знать, наши вяло сопротивляются такому решению, т.к. оно вроде как для других ситуаций - когда разные заглавия физически присутствуют в одной книжной единице.

Re: Буква Е и Ё
Пользователь: roit (IP-адрес скрыт)
Дата: 19, May, 2016 09:41

Мы все-таки пришли к решению, что ё заменяем е.
Вы правы и 517 не совсем для этого предназначено.
Но наше решение точно не идеальное. Есть же еще проблема с авторами. Особенно такими как какой-нибудь Ёнг Ким. Если использовать ё, то сортировка словарей будет неправильная.Мы в заголовках в полях персональных совсем Ё не используем, только в 200-м даем подлинное написание. НО читатель, если он поклонник буквы ё в нашей ситуации наберет Алёнушкины или Ёнг и не найдет нужного издания. Впрочем, возможна и обратная ситуация, если использовать ё, то читатель при поиске может ввести е. В общем, какое то программное решение проблемы очень бы пригодилось.



Редактировано 1 раз. Последний раз 19.05.2016 16:17 пользователем roit.

Re: Буква Е и Ё
Пользователь: FNS (IP-адрес скрыт)
Дата: 19, May, 2016 21:45

Способ не претендует на премию, но.. Возможно, подойдет или натолкнёт на нужную мысль. Код следует добавить в db_name.fst и db_name.ifs. После добавления, нужно создать словарь заново. Будет добавлена дополнительная запись в словарь авторов, и к примеру, Аксёнов можно будет найти введя в поиск Аксенов. По аналогии можно сделать и для других словарей. Следует так же подключить 702 и 961 поле к словарю авторов добавив измененные штатные записи из db_name.fst и db_name.ifs.

db_name.fst
___________
7001 0 MHL,if &unifor('Q'v700^a):'ё' then 'A='&unifor('G0ё'&unifor('Q'v700^a)),'е',&unifor('G2ё'&unifor('Q'v700^a))," "v700^d,", "v700^g,if a(v700^g) then|, |d700^b,if v700^b:'. 'or (not(v700^b:'.')) then v700^b else &unifor('G0.'v700^b),'. '&unifor('G2.'v700^b) fi fi,if &uf('Korg.mnu\A')='1' then &uf('+7W700#1') else if s(v700^1,v700^c,v700^f)<>''then' (',v700^1,if s(v700^1)<>''then"; "d700^c fi,v700^c,if s(v700^1,v700^c)<>''then"; "d700^f fi,v700^f,')' fi,"\"v700^4*4,", "v700^5*4,", "v700^6*4,"("v700^7")","\"d700^4 fi fi


db_name.ifs
___________
7001,700 0 MHL,if &unifor('Q'v700^a):'ё' then 'A='&unifor('G0ё'&unifor('Q'v700^a)),'е',&unifor('G2ё'&unifor('Q'v700^a))," "v700^d,", "v700^g,if a(v700^g) then|, |d700^b,if v700^b:'. 'or (not(v700^b:'.')) then v700^b else &unifor('G0.'v700^b),'. '&unifor('G2.'v700^b) fi fi,if &uf('Korg.mnu\A')='1' then &uf('+7W700#1') else if s(v700^1,v700^c,v700^f)<>''then' (',v700^1,if s(v700^1)<>''then"; "d700^c fi,v700^c,if s(v700^1,v700^c)<>''then"; "d700^f fi,v700^f,')' fi,"\"v700^4*4,", "v700^5*4,", "v700^6*4,"("v700^7")","\"d700^4 fi fi



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