bc52f7a2

Исходные данные и план действий


В качестве исходных данных возьмем реальную ленту новостей с содержанием на момент написания статьи:

Документ имеет общее описание канала новостей (разметка title, link, description, copywrite и т. д.) и перечисление сведений об отдельных новостях элементами title:

<title> <link>...</link> <description>...</description> <category>...</category> ... </title>

План дальнейших действий таков:

  • Перенесем эти данные в БД в таблицу с полями LINK, DESCRIPTION и PUBTIME, данные в которых описывают каждую конкретную новость.
  • Построим «каталожный» индекс типа CTXSYS.CTXCAT по полю DESCRIPTION.
  • Приведем примеры запросов.
  • Для лучшего понимания существа сам пример будет использовать ряд технических упрощений и исходных допущений. В частности, обратите внимание, что

    1. исходные данные представлены в формате RSS 2.0, и в статье не учитывается возможность существования в прочих каналах новостей других форматов RSS с иной разметкой;
    2. в конкретном новостном канале элемент description невелик по объему и лучше подходит под «краткое содержание», нежели чем элемент title.

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

    Для удобства занесем адрес канала в переменную SQL*Plus:

    VARIABLE url VARCHAR2 ( 1000 ) EXECUTE :url := 'http://www.oracle.com/technology/syndication/rss_otn_news.xml'

    Если обращение в интернет будет осуществляться через приближенный (proxy) сервер, требуется предварительно выдать что-то вроде:

    EXECUTE UTL_HTTP.SET_PROXY ('http://имя:пароль@адрес:порт')



    Содержание раздела