Настройки языка для XML-столбцов ArcSDE в базах геоданных Oracle

Если вы планируете выполнить запрос к таблице, используя содержание XML-столбца , отметьте лексер по умолчанию, который будет применяться для лингвистического анализа вместе с текстовыми индексами с помощью SQL*Plus, что является особенно важным, когда столбец будет содержать XML-документы с текстом, написанным на языке, отличным от английского. Если персональные настройки в таблице ArcSDE DBTUNE не указаны, то создание текстовых индексов для XML-столбцов ArcSDE будет определяться текстовыми параметрами Oracle по умолчанию.

Объекты по умолчанию, используемые в текстовых индексах, находятся в собственности пользователя ctxsys и создаются для инсталляции базы данных, не для индивидуальных баз данных. Их свойства зависят от языковых настроек, заданных при установке Oracle. Более подробно о настройках этих свойств см. в разделах о системных параметрах и предпочтениях в Справочнике Oracle Text Reference для вашей версии базы данных.

Параметры Oracle, оказывающие влияние на XML столбцы ArcSDE: DEFAULT_LEXER, DEFAULT_STOPLIST, DEFAULT_STORAGE, DEFAULT_WORDLIST и DEFAULT_INDEX_MEMORY.

По умолчанию эти параметры встроены в систему под тем же именем, что и у пользователя ctxsys, или с соответствующим значением. Например, DEFAULT_LEXER обычно настроен на использование предпочтения CTXSYS.DEFAULT_LEXER. Тем не менее, возможно, что у кого-то в вашей организации имеется ранее настроенный Oracle, где вместо этого используются пользовательские предпочтения по умолчанию.

Для многих западноевропейских языков и для языков, не поддерживаемых лексером, предпочтение CTXSYS.DEFAULT_LEXER обычно использует лексер BASIC_LEXER; предпочтением CTXSYS.DEFAULT_WORDLIST часто используется список слов BASIC_WORDLIST.

В некоторых западноевропейских языках для успешного индексирования и выполенения поискатребуются специальные настройки списка слов. Если ваш язык, например, французский, убедитесь, что атрибуты stemmer и fuzzy_match для предпочтения BASIC_WORDLIST настроены именно на французский.

После выбора текущих текстовых настроек Oracle и получения информации в Справочнике Oracle Text Reference, вы можете установить персональные настройки, которые будут использоваться для индексирования ваших XML-документов. Это требует создания соответствующих предпочтений в Oracle и переноса этих параметров в параметр ArcSDE DBTUNE XML_IDX_INDEX_TEXT. Далее, используйте ключевое слово DBTUNE содержащее пользовательский параметр XML_IDX_INDEX_TEXT при создании XML-столбца. Для сервиса метаданных ArcIMS Metadata Service вы можете указать параметр DBTUNE в файле конфигурации ArcXML.

Пользовательские лексеры

В зависимости от языка ваших XML-документов и настроек, которые были на момент установки Oracle, параметр DEFAULT_LEXER может не иметь необходимых настроек для наиболее подходящего вам лексера. Для успешного индексированияXML-документов требуется корректная установка предпочтения лексера в соответствии с выбранным языком.

Так, например, Oracle не поддерживает тайский лексер, и если вы работаете с тайским языком, то для использования лексера BASIC_LEXER следует установить предпочтение DEFAULT_LEXER. BASIC_LEXER выполняет индексирование и поиск, используя только пробелы, что не может дать хороших результатов с таким языком, как тайский. Если ваши XML-документы кодируются в UTF-8, более предпочтительные результаты могут быть получены с WORLD_LEXER при условии, что вы работаете с Oracle 10g или более новой версией. Все XML-документы, которые публикуются в XML-столбце ArcSDE с помощью ArcIMS Metadata Services, кодируются как UTF-8.

Просмотрите предлагаемые системой текстовые объекты перед созданием пользовательских предпочтений, чтобы, например, убедиться, что лексер, который вы хотите использовать, доступен в вашей инсталляции Oracle.

Вы используете это предпочтение при создании XML столбца, установив предпочтения для него в параметре XML_IDX_INDEX_TEXT DBTUNE. Всегда предваряйте имя предпочтения пользователем, который создал данное предпочтение. Любой пользователь может использовать текстовое предпочтение, созданное другим пользователем.

Если вы можете использовать BASIC_LEXER для индексирования XML документов, то при желании вы можете создать свой собственный лексер для слияния небуквенно-цифровых знаков в одно слово. Это выполняется с помощью атрибута printjoins лексера BASIC_LEXER, и применяется для стандартизации индексирования и поиска географических названий, в которых содержится такая пунктуация, как, например, в названии Coeur d'Alene.

Создание пользовательского лексера, используя атрибут skipjoin лексера BASIC_LEXER со знаком апострофа, проиндексирует Coeur d'Alene как Coeur dAlene. Любое некорректное написание этого географического названия с лишними апострофами, например, C'oeur d'Alene, будет также индексироваться как Coeur dAlene, что положительным образом отразится на результатах поиска. Например, вы создадите текстовое предпочтение как, например, следующее:

begin ctx_ddl.create_preference('BASIC_LEX_SKIP', 'BASIC_LEXER'); 
ctx_ddl.set_attribute('BASIC_LEX_SKIP', 'skipjoins', '''');
end;
/

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

Собственное предпочтение лексера может также потребоваться в случаях, когда DEFAULT_LEXER правильно установлен для использования BASIC_LEXER, но атрибуты BASIC_LEXER не корректны для вашего языка. Атрибуты BASIC_LEXER для основ индексирования, индексирования сложных слов, альтернативного написания и нового немецкого написания должны устанавливаться в соответствии с вашим языком для корректной индексации XML-документов. Это особенно важно для языков Западной Европы. После проверки требуемых значений для этих атрибутов вашего языка в справочнике Oracle Text Reference, создайте предпочтение лексера, следуя приведенному выше примеру, затем перенесите его в параметр XML_IDX_INDEX_TEXT DBTUNE.

Персональный список слов или стоп-лист

В зависимости от языка ваших XML-документов и настроек на момент установки Oracle, предпочтения DEFAULT_WORDLIST и DEFAULT_STOPLIST могут быть настроены некорректно для вашего языка.

Для успешного поиска XML-документов необходимо корректное предпочтение списка словв соответствии с выбранным языком. Это особенно важно для языков Западной Европы, где предпочтение BASIC_WORDLIST должно иметь корректную настройку языка для морфологического разбора и необходимых сопоставлений.

Предпочтение стоп-листа контролирует, какие слова в XML-документах не будут индексироваться и, следовательно, не будут доступны для поиска. Стоп-листы доступны для нескольких языков. Вы можете также настроить стоп-листы, если это требуется.

После проверки значений для этих настроек вашего языка в справочнике Oracle Text Reference, создайте собственное предпочтение лексера, затем добавьте его в значение параметра XML_IDX_INDEX_TEXT DBTUNE.

Связанные темы

5/10/2014