Настройка базы данных Oracle для поддержки столбцов ArcSDE XML
Столбцы ArcSDE XML используют компоненты Oracle Text, которые устанавливаются вместе с Oracle по умолчанию. Для того, чтобы их использовать необходимо предоставить пользователям права доступа к этим компонентам. Как только это будет сделано, база данных и ArcSDE должны быть правильно настроены для оптимизации результатов поиска и производительности, в частности, для поиска в XML-столбцах, на языках, отличных от английского, если вы используете XML-документы, которые содержат другие языки, кроме английского.
Если вы планируете осуществлять запрос к таблице используя содержимое XML-столбца, проверьте следующую информацию о базе данных:
- Лексер, используемый для лингвистического анализа текстовых индексов по умолчанию
- Настройки списка слов по умолчанию
- Поддерживаемые системой текстовые объекты
- Стоп-лист для базы данных по умолчанию
Если текущие настройки по умолчанию не являются правильными для языка XML-документов и существующие пользовательские текстовые предпочтения отсутствуют, необходимо создать пользовательские текстовые настройки для правильного индексирования и поиска в XML-документах, и сослаться на эти настройки с использованием параметра ArcSDE DBTUNE XML_IDX_INDEX_TEXT до создания XML-столбца.
Вы также можете настроить параметры, используемые для индексирования ваших XML-документов. Это требует создания соответствующих предпочтений в Oracle и указания данных параметров в параметре ArcSDE DBTUNE XML_IDX_INDEX_TEXT. Далее, используйте ключевое слово DBTUNE содержащее пользовательский параметр XML_IDX_INDEX_TEXT при создании XML-столбца.
Будьте осторожны при изменении параметров индексации пунктуации. Те же настройки используются при индексировании всего текста в XML-документах. Значения в одном XML-документе могут использовать пунктуацию отличную от других.
-
Войдите в SQL*Plus как пользователь ctxsys для выдачи необходимых разрешений пользователю, который будет собственником XML-столбца, выполнив следующую команду:
GRANT EXECUTE ON ctx_ddl TO <mdUsername>;
<mdUsername> – пользователь, который станет собственником XML-столбца.
-
Запросите просмотр параметров ctx_parameters для определения текущих настроек Oracle по умолчанию.
SELECT * FROM ctx_parameters;
-
Запросите просмотр CTX_PREFERENCES для ознакомления с доступными настройками. Например, таким образом вы можете узнать, какой лексер в настоящее время используется согласно предпочтению CTXSYS.DEFAULT_LEXER. Любые пользовательские предпочтения, созданные другими пользователями, также будут описаны.
SELECT * FROM ctx_preferences;
-
Запросите просмотр значений ctx_preferences_values для того, чтобы убедиться, что определенные системой предпочтения правильно установлены для ваших XML-документов.
SELECT * FROM ctx_preference_values;
- Сравните результаты описанных выше запросов с допустимыми установками для лексеров, списков слов и других текстовых объектов, документированных в Справочном руководстве по Oracle Text (Oracle Text Reference Guide) для вашей версии базы данных.
- Если текущие настройки по умолчанию не являются правильными для языка ваших XML-документов и существующие пользовательские текстовые предпочтения отсутствуют, вам необходимо создать пользовательские текстовые предпочтения для правильного индексирования и поиска в ваших XML-документах.
- Добавьте пользовательские текстовые предпочтения в параметр DBTUNE XML_IDX_INDEX_TEXT перед созданием вашего XML-столбца.
-
Просмотрите поддерживаемые системой текстовые объекты перед созданием пользовательских предпочтений, чтобы убедиться, что лексер, который вы хотите использовать, доступен в вашей инсталляции Oracle.
SELECT * FROM ctx_objects;
-
Вы можете создать пользовательское текстовое предпочтение, ссылаясь на возвращенный в предыдущем шаге лексер.
Например, если WORLD_LEXER возвращен в списке ctx_objects, вы можете создать пользовательское текстовое предпочтение, ссылаясь на данный лексер следующим образом:
EXEC ctx_ddl.create_preference('WORLDLEXER', 'WORLD_LEXER');
-
Установите параметр DBTUNE XML_IDX_INDEX_TEXT для использования предпочтения. Измените значение параметра XML_IDX_INDEX_TEXT под ключевым словом DEFAULTS, используя команду sdedbtune. Более подробно см. в Изменение содержания таблицы DBTUNE.
Всегда предваряйте имя предпочтения именем пользователя, который создал данное предпочтение. Например, если администратор базы геоданных выполнил вход как пользователь sde когда предпочтение было создано, параметр XML_IDX_INDEX_TEXT следует установить следующим образом:
LEXER sde.WORLDLEXER
-
Убедитесь, что предпочтения списка слов и стоп-листа установлены корректно для вашего языка. Если это не так, то выполните одно из следующего:
- Используйте одно из значений для данных установок для вашего языка, описанных в Справочном руководстве по Oracle Text (Oracle Text Reference Guide).
- Если установки, которые вам требуются, не описаны в Справочном руководстве по Oracle Text (Oracle Text Reference Guide), то создайте пользовательское предпочтение и добавьте его к значению параметра XML_IDX_INDEX_TEXT в таблице DBTUNE.
Если текущие настройки по умолчанию не являются правильными для языка XML-документов и существующие пользовательские текстовые предпочтения отсутствуют, вам необходимо создать пользовательские текстовые предпочтения для правильного индексирования и поиска в XML-документах, и сослаться на эти предпочтения с использованием параметра ArcSDE DBTUNE XML_IDX_INDEX_TEXT до создания XML-столбца.