|
Программирование >> Oracle
1256 Глава 17 Свойства АС1В(неделимость, согласованность, изолированность и продолжительность) представлены в главе 4 (в первой части книги - прим. научн. ред./ Во-вторых, в Oracle для работы с базой данных предлагается язык SQL, и компонент interMedia Text полностью доступен в SQL-операторах. Это позволяет при разработке приложений использовать множество инструментальных средств, понимающих язык SQL. При желании (хотя я этого и не рекомендую) можно создать приложение, использующее возможности компонента interMedia Text в электронных таблицах Microsoft Excel, подключаясь к базе данных Oracle через интерфейс ODBC. Поскольку в течение своей карьеры я часто выполнял функции администратора базы данных, меня очень радует тот факт, что все данные будут содержаться в базе данных Oracle, и при ее резервном копировании будет копироваться также приложение и все его данные. При необходимости можно будет восстановить приложение и его данные по состоянию на любой момент времени. Если используется решение на базе файловой системы, придется проверять, создана ли резервная копия базы данных и соответствующей файловой системы, и надеяться, что в момент копирования они были согласованы. При использовании компонента interMedia Text для индексирования информации, содержащейся вне базы данных Oracle, однако, необходимо немного изменить стратегию резервного копирования. Если используются источники данных URL DAIAASTORE или FILE DATASTORE, компонент interMedia Text поддерживает только ссылки на документы, но не сами документы. Документы эти со временем устаревают, удаляются или оказываются недоступными по другим причинам, и это может отрицательно сказаться на работе приложения. Кроме того, при резервном копировании базы данных Oracle уже не происходит полное резервное копирование приложения. Необходимо придумать отдельную стратегию резервного копирования для документов, хранящихся вне базы данных Oracle. Смысловой анализ Обратитесь к своей любимой поисковой системе, введите часто встречающееся в сети Internet слово, например database, и ждите в ответ огромного количества результатов поиска. Индексирование текстов -очень мощное средство, которое можно использовать во многих приложениях. Но его бывает недостаточно. Это особенно верно для очень больших объемов данных, анализировать которые пользователю сложно. Компонент interMedia Text включает интегрированные средства, позволяющие преобразовать все эти данные в полезную информацию. В компонент interMedia Text интегрирована расширяемая база знаний, которая используется в ходе индексирования и анализа текста и обеспечивает возможность лингвистического анализа. Можно не только искать текст, но и анализировать его см1сл. Так что при создании индекса interMedia Text можно дополнительно сгенерировать список тем документов. Это позволяет создавать приложения, например, для анализа документов и классификации их по темам, а не по содержащимся словам или фразам. Когда возможность тематической классификации впервые появилась в базе данных Oracle, я придумал простой тест, чтобы оценить в ее возможности. Я загрузил в таблицу базы данных Oracle около тысячи коротких новостей из различных компьютерных жур- interMedia 1257 налов. Затем создал индекс interMedia Text по столбцу, использовавшемуся для хранения текста статей, и сгенерировал список тем для каждой статьи. Выполнив поиск документов, посвященных теме database , я обнаружил, что в их числе оказались статьи, не содержащие слова database и тем не менее отнесенные компонентом interMedia Text к теме база данных (database). Сначала я подумал, что это - ошибка в компоненте interMedia Text, но, разобравшись, понял, что обладаю потрясающей возможностью - находить в базе данных текст по см1слу. Речь не идет о статистическом анализе или хитроумном способе подсчета вхождений слов - это именно лингвистический анализ текста. Продемонстрирую эти возможности на примере: SQL> create table mydocs 2 (id number primary key, 3 thetext varchar2(4000) Table created. SQL> create table mythemes 2 (ery id number, 3 theme varchar2(2000) , 4 weight number Table created. SQL> insert into mydocs(id, thetext) 2 values(1, 3 Go to your favorite Web search engine, type in a freently 4 occurring word on the Internet like database, and wait 5 for the plethora of search results to return. 1 row created. SQL> commit; Commit complete. SQL> create index my idx on mydocs(thetext) indextype is ctxsys.context; Index created. SQL> begin 2 ctx doc.themes(index name => my idx, 3 textkey => 1, 4 restab => mythemes 5 ) ; 6 end; PL/SQL procedure successfully completed. SQL> select theme, weight from mythemes order by weight desc; 1258 Глава 17 THEME WEIGHT occurrences 12 search engines 12 Internet 11 result 11 returns 11 databases 11 searches 10 favoritism 6 type 5 plethora 4 frequency 3 words 3 12 rows selected. PL/SQL-блок берет таблицу, на которую сс1лается индекс MY IDX, находит строку со значением key =1 и выбирает проиндексированные данные. Затем эти данн1е обрабатываются тематическим анализатором. Анализатор генерирует список затронут1х в документе тем, присваивая им вес (например, статья про банковскую деятельность может касаться тем деньги , кредит и т.п.). Затем информация об этих темах помешается в таблицу MYTHEMES. Если проделать это для всех данных в приложении, пользователи смогут искать не только строки, содержащие определенное слово, но и строки, наиболее близкие по смыслу к определенному тексту. Учтите, что если предоставить компоненту interMedia Text больше данных для анализа, сгенерированный список тем может оказаться намного точнее, чем для рассмотренного простого предложения. Учтите также, что я создал столбец ID как первичный ключ. Для компонента interMedia Text в Oracle 8i 8.1.6 и более ранних версиях необходимо наличие первичного ключа для таблицы, прежде чем по ней можно будет создавать индекс interMedia Text. В Oracle 8i 8.1.7 и последующих версиях компонент interMedia Text больше не требует наличия первичного ключа при создании индекса. Поиск в приложениях XML У меня часто спрашивают, как обеспечить эффективный поиск в документе со встроенной разметкой, например, на языке HTML или XML. К счастью, компонент interMedia Text позволяет очень просо решить эту задачу - за счет использования объектов, называемых разделами. Это решение легко использовать, сочетая возможности анализа XML (XML parsing) и задания разделов в источнике данных URL DATASTORE. Если XML соответствует декларируемым целям, т.е. является средством взаимодействия разнородных систем, то разработчик приложения с помощью компонента interMedia Text может легко создать оперативную базу знаний с возможностями поиска данных из различных систем. П-ный пример индексирования ХМL-документов представлен далее в этой главе.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |