プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

11.5 ジオコーディングのデータ構造

Oracleでは、次の表を使用してジオコーディングを行います。

GC_PARSER_PROFILES表およびGC_PARSER_PROFILEAFS表には、サポートされるすべての国の住所形式の定義が格納されています。これらの表は、内部の住所パーサーが住所フィールドに住所を解析する際に使用されます。この2つの表のデータは、データ・プロバイダまたはOracleから提供されます。(これらの表がデータ・プロバイダから提供されていない場合は、「プロファイル表のインストール」に示すようにインストールしてから移入を行う必要があります。)他の表には、データ・ベンダーから提供されるジオコーディング・データが格納されます。

ジオコーディング・データが含まれる表を所有する各ユーザー(SDO_GCDRサブプログラムをコールする際にusernameパラメータで指定可能なユーザー)は、GC_PARSER_PROFILES表、GC_PARSER_PROFILEAFS表およびGC_COUNTRY_PROFILE表をそれぞれ1つずつ所有している必要があります。このユーザーは、他の表(GC_xxx_<接尾辞>)については、複数のセットを所有できます。表名の末尾の接尾辞が同じ表のセットには、それぞれ1つの国のジオコーディング・データが格納されます。たとえば、次の表のセットを使用すると、米国のジオコーディング・データを格納できます。

1つの国のジオコーディング・データを、複数の表セットに格納することはできません。表の接尾辞は、データ・ベンダーによって定義され、GC_COUNTRY_PROFILE表のGC_TABLE_SUFFIX列に規定されています(「GC_COUNTRY_PROFILE表」を参照)。

これ以降の項では、ベンダーが提供する、ジオコーディング・データが格納される表について、表名のアルファベット順に説明します。

「ジオコーディングを行うための表の索引」では、ジオコーディングにこれらの表を使用するために作成する必要のある索引について説明します。

11.5.1 GC_ADDRESS_POINT_<接尾辞>表と索引

GC_ADDRESS_POINT_<接尾辞>表(たとえば、GC_ADDRESS_POINT_US)には、表名接尾辞に関連付けられている国(または国のグループ)の住所の地理(経度、緯度)座標が格納されます。この表はジオコーディングにとって必須ではありません(ただし、点ベースのジオコーディングでは必須)が、この表を使用すると、ジオコーダはより正確な位置結果を生成します。スキーマで示されている場合は、自動的に使用されます。この表には、表に格納される住所ごとに行が1つ含まれ、表11-7に示す列があります。

表11-7 GC_ADDRESS_POINT_<接尾辞>表

列名 データ型 説明

ADDRESS_POINT_ID

NUMBER(10)

住所地点のID番号。(必須)

ROAD_ID

NUMBER

住所地点に位置する道路のID番号。(必須)

ROAD_SEGMENT_ID

NUMBER(10)

住所地点に位置する道路の道路セグメントのID番号。(必須)

SIDE

VARCHAR2(1)

住所地点に位置する道路の側。可能な値はL(左側)またはR(右側)です。(必須)

LANG_CODE

VARCHAR2(3)

住所地点に関連付けられている言語の、3文字のISO各国語コード。(必須)地点

HOUSE_NUMBER

VARCHAR2(600 CHAR)

住所地点の住居番号(数字以外の文字を含むことも可能)。(必須)

PERCENT

NUMBER

道路セグメントの長さに対する住所点の位置の割合値。これは、セグメントの開始点から住所点までの距離を道路セグメントの長さで除算して求められます。(必須)

ADDR_LONG

NUMBER(10)

住所地点の経度値。(必須)

ADDR_LAT

NUMBER(10)

住所地点の緯度値。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

住所地点が属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

GC_ADDRESS_POINT_<接尾辞>表を使用する場合は、次の形式の文を使用して表に索引を作成する必要があります。

CREATE INDEX idx_<suffix>_addrpt_addr ON gc_address_point_<suffix> (road_segment_id, road_id, house_number, side);

11.5.2 GC_AREA_<接尾辞>表

GC_AREA_<接尾辞>表(たとえば、CG_AREA_US)には、その表名の接尾辞に関連付けられた国の管理領域情報が格納されます。この表には、管理領域ごとに行が1つ含まれ、表11-8に示す列があります。

表11-8 GC_AREA_<接尾辞>表

列名 データ型 説明

AREA_ID

NUMBER(10)

領域ID番号。(必須)

AREA_NAME

VARCHAR2(64)

領域名。(必須)

LANG_CODE

VARCHAR2(3)

領域に関連付けられている言語の、3文字のISO各国語コード。(必須)

ADMIN_LEVEL

NUMBER(1)

領域の管理階層レベル。(必須)

LEVEL1_AREA_ID

NUMBER(10)

領域が属するレベル1領域のID。管理階層のレベル1領域は国です。(必須)

LEVEL2_AREA_ID

NUMBER(10)

領域が属するレベル2領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

LEVEL3_AREA_ID

NUMBER(10)

領域が属するレベル3領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

LEVEL4_AREA_ID

NUMBER(10)

領域が属するレベル4領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

LEVEL5_AREA_ID

NUMBER(10)

領域が属するレベル5領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

LEVEL6_AREA_ID

NUMBER(10)

領域が属するレベル6領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

LEVEL7_AREA_ID

NUMBER(10)

領域が属するレベル7領域のID(該当する場合)。この領域が属する管理階層のレベルごとに領域IDを指定する必要があります。(省略可能)

CENTER_LONG

NUMBER

領域の中心の経度値。中心は、中心の経度および緯度の値に最も近い道路セグメントに設定されます。この2つの属性は、適切に設定することをお薦めします。これらの値が設定されていない場合、領域をジオコードして得られる経度および緯度の座標は、(0,0)になります。(省略可能)

CENTER_LAT

NUMBER

領域の中心の緯度値。(CENTER_LONG列の説明を参照)。(省略可能)

ROAD_SEGMENT_ID

NUMBER(10)

領域の中心が設定される道路セグメントのID。ジオコーダをOracle Spatial and Graphルーティング・エンジン(「ルーティング・エンジン」を参照)と連携させるには、この値を正しく設定する必要があります(連携させる必要がない場合は、0 (ゼロ)以外の任意の値に設定できますが、NULLにはできません)。(必須)

POSTAL_CODE

VARCHAR2(16)

領域の中心の郵便番号。この属性は、正しく設定することをお薦めします。この値がNULLの場合、領域をジオコードした結果の郵便番号属性はNULLになります。(省略可能)

COUNTRY_CODE_2

VARCHAR2(2)

領域が属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

REAL_NAME

VARCHAR2(64)

現地の言語で綴られた、領域の実際の名前。この列は、領域名が英語以外の場合に有効です。たとえば、MUNICHのドイツ語名はMÜNCHENです。MUNCHENと綴ることもできますが、REAL_NAMEの値は、MÜNCHENにする必要があります。ドイツ用の領域表では、MÜNCHENという名前とMUNCHENという名前の領域は同じ領域を指し、実際の名前は両方ともMÜNCHENです。領域名に英語以外の文字が含まれない場合は、AREA_NAMEと同じ名前をREAL_NAMEに設定してください。(必須)

IS_ALIAS

VARCHAR2(1)

この領域が、正式な管理領域として認められている領域の別名である場合はT、そうでない場合はFです。たとえば、Manhattanは正式に認められた管理領域ではありませんが、New York市の一部として一般に通用しています。このような場合、ManhattanNew York Cityの別名です。(必須)

NUM_STREETS

NUMBER

この領域内の通りの番号。(省略可能)

11.5.3 GC_COUNTRY_PROFILE表

GC_COUNTRY_PROFILE表には、ジオコーダで使用する国プロファイルの情報が格納されます。この情報には、行政区域の階層定義、言語、およびデータ表とそれらの索引によって使用される表名の接尾辞が含まれます。この表には、サポートされている国ごとに行が1つ含まれ、表11-9に示す列があります。

表11-9 GC_COUNTRY_PROFILE表

列名 データ型 説明

COUNTRY_NAME

VARCHAR2(60)

国名。(必須)

COUNTRY_CODE_3

VARCHAR2(3)

3文字のISO国コード。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

2文字のISO国コード。(必須)

LANG_CODE_1

VARCHAR2(3)

3文字のISO各国語コード。一部の国では、言語が複数あることがあります(その場合は、LANG_CODE_2やその他のLANG_CODE_nなどの列にも値が入ります)。(必須)

LANG_CODE_2

VARCHAR2(3)

3文字のISO各国語コード。(省略可能)

LANG_CODE_3

VARCHAR2(3)

3文字のISO各国語コード。(省略可能)

LANG_CODE_4

VARCHAR2(3)

3文字のISO各国語コード。(省略可能)

NUMBER_ADMIN_LEVELS

NUMBER(1)

管理階層レベルの数。1つの国には、1から7(最大から最小)の最大7つの管理レベルを設定できます。最高レベルの領域(国)は、レベル1です。米国の場合の管理階層は、レベル1が国、レベル2が州、レベル3が郡、レベル4が市です。(必須)

SETTLEMENT_LEVEL

NUMBER(1)

Settlementの管理階層レベル。これは、住所処理で使用する最下位の領域レベルです。米国の場合は市レベルで、ヨーロッパの場合は、通常、市の小区域(レベル5)です。(必須)

MUNICIPALITY_LEVEL

NUMBER(1)

Municipalityの管理階層レベル。これは、住所処理で使用する下から2番目の領域レベルです。米国の場合は郡(レベル3)で、ヨーロッパの場合は、通常、市(レベル4)です。(省略可能)

REGION_LEVEL

NUMBER(1)

Regionの行政レベルで、Municipalityレベルより1つ上のレベルです。米国の場合、これは州または住所処理で使用する下から3番目の領域レベル(レベル2)で、ヨーロッパの場合、これは認められている国の小区域(レベル2またはレベル3)です。(省略可能)

SETTLEMENT_IS_OPTIONAL

VARCHAR2(1)

住所データでSettlement情報がオプションの場合はT、オプションでない(必要な)場合はFです。(必須)

MUNICIPALITY_IS_OPTIONAL

VARCHAR2(1)

住所データでMunicipality情報がオプションの場合はT、オプションでない(必要な)場合はFです。(必須)

REGION_IS_OPTIONAL

VARCHAR2(1)

住所データでRegion情報がオプションの場合はT、オプションでない(必要な)場合はFです。(必須)

POSTCODE_IN_SETTLEMENT

VARCHAR(1)

各郵便番号が1つのSettlement領域内のみに含まれることが必要な場合はT、複数のSettlement領域にまたがる場合はFです。(必須)

SETTLEMENT_AS_CITY

VARCHAR(1)

市の名前によってMunicipalityとSettlementの両方が識別できる場合はT、Settlementのみが識別できる場合はFです。たとえば、イギリスではLondonを、Municipality領域の名前とSettlement領域の名前(LondonというMunicipality領域に含まれる)の両方に使用できます。ヨーロッパの一部の国(イギリス、ベルギーなど)の大都市では、このようなことがよくあります。(必須)

CACHED_ADMIN_AREA_LEVEL

NUMBER

(将来使用するために予約済)

GC_TABLE_SUFFIX

VARCHAR2(5)

GC_*データ表の国を識別する表名の接尾辞。たとえば、GC_TABLE_SUFFIXの値がUSの場合、その国のジオコーディング・データを持つ表の名前の末尾は_US(たとえば、CG_AREA_US)になります。(必須)

CENTER_LONG

NUMBER

領域の中心の経度値。(省略可能)

CENTER_LAT

NUMBER

領域の中心の緯度値。(省略可能)

SEPARATE_PREFIX

VARCHAR2(1)

通りの名前の接頭辞が通りの名前とは別の語になる場合はT、通りの名前と同じ語に含まれる場合はFです。たとえば、米国での通りの住所が123 N Main Stの場合、接頭辞はNで、通りの名前Mainと別になっています。(オプション、現在Oracleでは非使用)

SEPARATE_SUFFIX

VARCHAR2(1)

通りの名前の接尾辞が通りの名前とは別の語になる場合はT、通りの名前と同じ語に含まれる場合はFです。たとえば、米国での通りの住所が123 Main St NWの場合、接尾辞はNWで、通りの名前Mainおよび通りの種類Stとは別になっています。(オプション、現在Oracleでは非使用)

SEPARATE_STYPE

VARCHAR2(1)

通りの種類が通りの名前とは別の語になる場合はT、通りの名前と同じ語に含まれる場合はFです。たとえば、ドイツでの通りの住所が123 Beethovenstrassの場合、種類はstrassで、通りの名前Beethovenと同じ語の中に含まれています。(オプション、現在Oracleでは非使用)

AREA_ID

NUMBER

現在、Oracleでは使用していません。(省略可能)

VERSION

VARCHAR2(10)

データのバージョン。最初のバージョンは、1.0です。(必須)

11.5.4 GC_INTERSECTION_<接尾辞>表

GC_INTERSECTION_<接尾辞>表(たとえば、GC_INTERSECTION_US)には、その表名の接尾辞に関連付けられた国(または国のグループ)の道路の交差点の情報が格納されます。交差点とは、複数の道路が出会うまたは交差する場所のことです。この表に含まれる列を、表11-10に示します。

表11-10 GC_INTERSECTION_<接尾辞>表

列名 データ型 説明

ROAD_ID_1

NUMBER

交差点に位置する1つ目の道路のID番号。(必須)

ROAD_SEGMENT_ID_1

NUMBER

交差点に位置する1つ目の道路の道路セグメントのID番号。(必須)

ROAD_ID_2

NUMBER

交差点に位置する2つ目の道路のID番号。(必須)

ROAD_SEGMENT_ID_2

NUMBER

交差点に位置する2つ目の道路の道路セグメントのID番号。(必須)

INTS_LONG

NUMBER

交差点の経度値。(必須)

INTS_LAT

NUMBER

交差点の緯度値。(必須)

HOUSE_NUMBER

NUMBER

交差点の住居番号の先頭の数字の部分。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)(必須)

HOUSE_NUMBER_2

VARCHAR2(10)

交差点の住居番号の2番目の部分。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)(必須)

SIDE

VARCHAR2(1)

交差点にある家屋が位置する通りの側。可能な値はL(左側)またはR(右側)です。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

交差点にある家屋が属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

11.5.5 GC_PARSER_PROFILES表

GC_PARSER_PROFILES表には、通常、住所で検出されたキーワードに関する情報が格納されます。ジオコーダではキーワードを使用して、住居番号、道路名、市の名前、州の名前、郵便番号などの住所フィールドを識別します。キーワードには、通りの種類(road、street、drive、avenueなど)または通りの接頭辞または接尾辞(north、south、east、westなど)を指定できます。この表に含まれる列を、表11-11に示します。

表11-11 GC_PARSER_PROFILES表

列名 データ型 説明

COUNTRY_CODE

VARCHAR2(2)

キーワードの国の2文字のISO国コード。(必須)

KEYWORDS

SDO_KEYWORDARRAY

特定の住所フィールドのキーワードの単一配列。配列には、同じ意味で使用できる単語や単語の集まりおよび短縮形を含めることができます(たとえば、United States of AmericaUSAおよび United Statesはすべて米国を指します)。この配列の最初の単語は、キーワードの公式なフル・ネーム(ある場合)である必要があります。米国では、住所を解析する際に400を超えるキーワードが使用されます。次に、米国データ・セットからのキーワード配列およびキーワードのいくつかの例を示しますが、各行に格納されるのは単一のSDO_KEYWORDARRAYオブジェクトのみです。

SDO_KEYWORDARRAY( 'UNITED STATES OF AMERICA','US', 'USA', 'UNITED STATES', 'U.S.A.', 'U.S.')

SDO_KEYWORDARRAY('AVENUE','AV', 'AVE', 'AVEN', 'AVENU', 'AVN', 'AVNUE', 'AV.','AVE.')

SDO_KEYWORDARRAY('40TH', 'FORTIETH')

SDO_KEYWORDARRAY('NEW YORK','NY')

SDO_KEYWORDARRAY('LIBRARY')

OUTPUT_KEYWORD

VARCHAR2(2000)

住所フィールドを表すためにジオコーダ・データで使用されるキーワード。これは、キーワード配列で使用されるキーワードのいずれかと同じである必要があります。出力キーワードはジオコーディング・データ表に格納されている住所とユーザーの入力を一致させるために使用されます。たとえば、出力キーワードAVがGC_ROAD_US表の通りの種類Avenueに対して使用される場合、ユーザーがキーワード(AVENUEAVAVEAVENAVENUAVNAVNUEAV.、AVE.)のいずれかを含む住所を入力すると必ず、キーワードはデータベースで住所を検索しやすいように解釈され、出力キーワードAVと一致します。次に、出力キーワードのいくつかの例を示しますが、各行に格納されるのは単一の出力キーワードのみです。

US

AV

40TH

NY

LIBRARY

SECTION_LABEL

VARCHAR2(30)

KEYWORDS列およびOUTPUT_KEYWORD列に表示されるキーワードのタイプを識別するために使用されるラベル。複数の異なるセクション・ラベルがありますが、各行の単一のセクション・ラベルのみがキーワードのタイプを識別するのに使用されます。

COUNTRY_NAME: 国名を表すために使用されるキーワードを識別します。

LOCALITY_KEYWORD_DICTIONARY: 位置(市区町村、都道府県、州など)にある単語を標準化された形式の単語に置き換えるために使用されるキーワードを識別します。たとえば、SaintStに置き換えられると、市の名前Saint ThomasおよびSt. ThomasSt Thomasに標準化され、データベースに格納されます。

PLACE_NAME_KEYWORD: レストランやホテルなどの対象点(POI)の名前のキーワードを識別します。

REGION_LIST: NYNew YorkNHNew Hampshireなど、地域の既知の名前であるキーワードを識別します。識別された地域は、住所処理で使用する下から3番目の領域レベルまたは3番目に小さい領域に属する行政区域である必要があります。米国の場合、これは州レベルです(最下位の領域レベルまたは最小の領域は市レベルです)。

SECOND_UNIT_KEYWORD: Floor#SuiteApartmentなど、2番目の単位の説明で使用するキーワードを識別します。

STREET_KEYWORD_DICTIONARY: (40THFortiethなど)通りの名前の通りの種類以外のキーワードを標準化された形式に置き換えるために使用するキーワードを識別します。

STREET_PREFIX_KEYWORD: SouthNorthWestEastなど、通りの名前の接頭辞のキーワードを識別します。

STREET_TYPE_KEYWORD: RoadStreetDriveなど、通りの種類のキーワードを識別します。

IN_LINE_STREET_TYPE_KEYWORD: ドイツの通りの名前Steinstrassestrasseなど、通りの名前にアタッチされている通りの種類のキーワードを識別します。

POSITION

VARCHAR2(1)

通り名に対して相対的な、キーワードの位置。これは、キーワードを実際の通りの名前の前に配置する(P)か、後に配置する(F)か、またはその両方(B)かを示します。したがって、有効なエントリはPFおよびBのみです。米国では、ほとんどの通りの種類のキーワードは通りの名前の後に続きます(たとえば、通りの種類がBlvdの場合はHollywood Blvd)。ただし、フランスでは、通りの種類のキーワードは通りの名前の前に配置されます(たとえば、通りの種類がAvenueの場合はAvenue De Paris)。

SEPARATENESS

VARCHAR2(1)

キーワードが通りの名前と別になるかどうかを示します。キーワードは分離できる場合と(S)分離できない(N)場合があります。したがって、有効なエントリはSおよびNのみです。米国では、すべての通りの種類のキーワードは通りの名前とは別の語になります(たとえば、通りの種類がBlvdの場合はHollywood Blvd)。ただし、ドイツでは、通りの種類のキーワードは通りの名前と別になりません(たとえば、通りの種類がstrasseの場合はAugustenstrasse)。

11.5.6 GC_PARSER_PROFILEAFS表

GC_PARSER_PROFILEAFS表には、住所形式のXML定義が格納されます。XML文字列では、特定の国の各住所形式を記述します。Oracle Geocoder 10g以前では、J2EEジオコーダはこの表のかわりにcountry_name.pprファイルを使用します。country_name.pprファイルの内容はADDRESS_FORMAT_STRING属性の内容と同じです。この表に含まれる列を、表11-12に示します。

表11-12 GC_PARSER_PROFILEAFS表

列名 データ型 説明

COUNTRY_CODE

VARCHAR2(2)

国の2文字のISO国コード。(必須)

ADDRESS_FORMAT_STRING

CLOB

COUNTRY_CODE列で指定した国の住所形式を記述するXML文字列。(例11-4では、米国の住所形式のXML定義を示し、「ADDRESS_FORMAT_STRINGの説明」では、米国の住所形式の定義で使用される要素について説明します。)

例11-4に、米国の住所形式のADDRESS_FORMAT_STRING定義を示します。

例11-4 米国の住所形式のXML定義

<address_format unit_separator="," replace_hyphen="true">
 <address_line>
   <place_name />
 </address_line>
 <address_line>
   <street_address>
     <house_number>
       <format form="0*" effective="0-1" output="$" />
       <format form="0*1*" effective="0-1" output="$">
         <exception form="0*TH" />
         <exception form="0*ST" />
         <exception form="0*2ND" />
         <exception form="0*3RD" />
       </format>
       <format form="0*10*" effective="0-1" output="$" />
       <format form="0*-0*" effective="0-1" output="$" />
       <format form="0*.0*" effective="0-1" output="$" />
       <format form="0* 0*/0*" effective="0-1" output="$" />
     </house_number>
     <street_name>
       <prefix />
       <base_name />
    	<suffix />
       <street_type />
       <special_format>
   <format form="1* HWY 0*" effective="7-8" addon_effective="0-1" addon_output="$ HWY"/>
   <format form="1* HIGHWAY 0*" effective="11-12" addon_effective="0-1" addon_output="$ HWY"/>
   <format form="1* HWY-0*" effective="7-8" addon_effective="0-1" addon_output="$ HWY"/>
   <format form="1* HIGHWAY-0*" effective="11-12" addon_effective="0-1" addon_output="$ HWY"/>
         <format form="HWY 0*" effective="4-5" addon_output="HWY" />
         <format form="HIGHWAY 0*" effective="8-9" addon_output="HWY" />
         <format form="ROUTE 0*" effective="6-7" addon_output="RT" />
         <format form="I 0*" effective="2-3" addon_output="I" />
         <format form="11 0*" effective="3-4" addon_effective="0-1" />
         <format form="I0*" effective="1-2" addon_output="I" />
         <format form="I-0*" effective="2-3" addon_output="I" />
         <format form="11-0*" effective="3-4" addon_effective="0-1" />
         <format form="ROUTE-0*" effective="6-7" addon_output="RT" />
         <format form="US0*" effective="2-3" addon_output="US" />
         <format form="HWY-0*" effective="2-3" addon_output="US" />
         <format form="HIGHWAY-0*" effective="8-9" addon_output="HWY" />
       </special_format>
     </street_name>
     <second_unit>
       <special_format>
         <format form="# 0*" effective="2-3" output="APT $" />
         <format form="#0*" effective="1-2" output="APT $" />
       </special_format>
     </second_unit>
   </street_address>
 </address_line>
 <address_line>
   <po_box>
     <format form="PO BOX 0*" effective="7-8" />
     <format form="P.O. BOX 0*" effective="9-10" />
     <format form="PO 0*" effective="3-4" />
     <format form="P.O. 0*" effective="5-6" />
     <format form="POBOX 0*" effective="6-7" />
   </po_box>
 </address_line>
 <address_line>
   <city optional="no" />
   <region optional="no" order="1" />
   <postal_code>
     <format form="00000" effective="0-4" />
     <format form="00000-0000" effective="0-4" addon_effective="6-9" />
     <format form="00000 0000" effective="0-4" addon_effective="6-9" />
   </postal_code>
 </address_line>
</address_format>

11.5.6.1 ADDRESS_FORMAT_STRINGの説明

GC_PARSER_PROFILEAFS表のADDRESS_FORMAT_STRING列には、有効な住所における住所フィールドの形式とそれらの位置指定が記述されます。通常、住所は複数の住所行で記述されるため、住所形式文字列は住所行で編成されます。

住所パーサーは、GC_PARSER_PROFILES表に定義されている各住所フィールドのキーワード定義と組み合せて、XML住所形式で定義された形式の説明を使用し、入力された住所を解析して個々の住所フィールドを識別します。

<address_format>要素

<address_format>要素には、unit_separator属性とreplace_hyphen属性が含まれます。unit_separator属性は、格納されたデータのフィールドを区切るために使用されます。デフォルトでは、これはカンマ(unit_separator=",")です。replace_hyphen属性は、ユーザーの入力のすべてのハイフンを空白に置き換えるかどうかを指定します。デフォルトでは、trueに設定されます(replace_hyphen="true") (つまり、データ表のすべての名前にはハイフンのかわりに空白が含まれている必要があります)。

replace_hyphen="true"の場合、ハイフンを含むデータ表の行政区域の名前は、replace_hyphen="true"の場合のジオコーディング時に照合されません(ただし、ハイフンを含むこれらの区域名は、GC_AREA表のREAL_NAME列に配置され、ジオコード結果の行政区域の名前として戻すことができます)。ただし、ハイフンを含むGC_ROAD表のNAME列の道路名は、ジオコーディング時に照合されますが、照合のパフォーマンスの低下が予想されます。

<address_line>要素

XML住所形式文字列の各<address_line>要素は、住所行の形式を説明します。各<address_line>要素には、通りの住所、市、州(地域または都道府県)、郵便番号など、個々の住所フィールドを説明する1つ以上の子要素を指定できます。これらの住所フィールドの要素は、住所フィールドが有効な住所に表示される順序で表示されます。住所フィールドが必須の場合、住所フィールド要素のoptional属性は、"no"に設定されます。デフォルトでは、住所フィールドの要素はオプションです。

<format>要素

住居番号、特別な通りの名前、郵便箱および郵便番号の要素の形式の説明は、単一または複数の<format>要素で指定されます。各<format>要素は、特定の住所フィールドの有効なレイアウトおよび値の範囲を指定します。次の例では、特別な通りの名前を定義するために使用される形式について説明します。

<format 
     form="1* HWY 0*" 
     effective="7-8" 
     output="$"
     addon_effective="0-1" 
     addon_output="$ HIGHWAY" />

form属性は、正規表現に類似した文字列を使用して形式を説明します(1は任意のアルファベット文字を表し、0は任意の数字を表し、2は任意のアルファベット文字または任意の数字を表します。1*はすべてアルファベット文字で構成される文字列を指定し、0*はすべて数字で構成される文字列を指定し、2*は数字とアルファベット文字の任意の組合せで構成される文字列を指定します)。他のすべてのシンボルはそれ自身を表します。

form属性によって指定されたパターンに一致するすべての文字列は、その(親)住所フィールドの有効な文字列とみなされます。こうした有効な文字列は、属性effectiveおよびaddon_effectiveによって指定されたセグメントに分割できます。effective属性は、住所文字列のより重要なプライマリの部分を指定し、addon_effective属性は、住所文字列のセカンダリの部分を指定します。

  • effective属性は、form属性の終了記述子の開始位置および終了位置を使用して、完全なパターンのサブストリングを指定します。前述の例のeffective="7-8"では、(位置0から数えて)位置7で開始し位置8で終了するサブストリング(form属性の最後で、0*によって定義されたサブストリング)を取得します。

  • addon_effective属性は、form属性の開始記述子の開始位置および終了位置を使用して、完全なパターンのサブストリングを指定します。前述の例のaddon_effective="0-1"では、(位置0から数えて)位置0で開始し位置1で終了するサブストリング(form属性の最初で、1*によって定義されたサブストリング)を取得します。

output属性およびaddon_output属性は、それぞれeffective属性およびaddon_effective属性によって指定されたセグメントの住所文字列の出力形式を指定します。これらの出力形式は、住所の照合時に使用されます。シンボル$は一致する文字列を表し、その他のシンボルはそれ自身を表します。前述の例は、次のとおりです。

  • output="$"$は、effective属性で一致したサブストリングを表します。

  • addon_output="$ HIGHWAY"$ HIGHWAYは、addon_effective属性で一致したサブストリングを表し、空白の後に単語HIGHWAYが続きます。

前述の例の<format>要素を使用すると、form="1* HWY 0*"の場合、入力文字列'STATE HWY 580'は、effective=580output=580addon_effective=STATEおよびaddon_output=STATE HIGHWAYとなります。

<format>要素には、<exception>要素を含めることもできます。<exception>要素は、有効な形式であるが、住所フィールドから除外する必要がある文字列を指定します。たとえば、有効な数値0*1*(任意の数字の次に任意のアルファベット文字が続く)を含む<house_number>要素で、<exception form="0*TH" />を指定した場合、数字を含む(または含まない)、THで終わる住居番号はすべて除外する必要があることを意味します。

11.5.7 GC_POI_<接尾辞>表

GC_POI_<接尾辞>表(たとえば、GC_POI_US)には、その表名の接尾辞に関連付けられた国(または国のグループ)の対象点(POI)情報が格納されます。POIには、空港、記念碑、公園などの機能が含まれます。この表には、対象点ごとに1つ以上の行が含まれます。たとえば、1つのPOIに関連付けられているSettlementが複数ある場合は、そのPOIに対して複数行を格納できます。GC_POI_<接尾辞>表に含まれる列を、表11-13に示します。

表11-13 GC_POI_<接尾辞>表

列名 データ型 説明

POI_ID

NUMBER

POIのID番号。(必須)

POI_NAME

VARCHAR2(64)

POIの名前。(必須)

LANG_CODE

VARCHAR2(3)

POI名に使用する言語の、3文字のISO各国語コード。(必須)

FEATURE_CODE

NUMBER

POIのフィーチャ・コード(データ・ベンダーがカテゴリ別にPOIを分類している場合)。(省略可能)

HOUSE_NUMBER

VARCHAR2(10)

POIの住居番号(数字以外の文字を含むことも可能)。(必須)

STREET_NAME

VARCHAR2(80)

POIの道路の名前。(必須)

SETTLEMENT_ID

NUMBER(10)

POIが属するSettlementのID番号。(POIがSettlementに関連付けられている場合は必須)

MUNICIPALITY_ID

NUMBER(10)

POIが属するMunicipalityのID番号。(POIがMunicipalityに関連付けられている場合は必須)

REGION_ID

NUMBER(10)

POIが属するRegionのID番号。(POIがRegionに関連付けられている場合は必須)

SETTLEMENT_NAME

VARCHAR2(64)

POIが属するSettlementの名前。(POIがSettlementに関連付けられている場合は必須)

MUNICIPALITY_NAME

VARCHAR2(64)

POIが属するMunicipalityの名前。(POIがMunicipalityに関連付けられている場合は必須)

REGION_NAME

VARCHAR2(64)

POIが属するRegionの名前。(POIがRegionに関連付けられている場合は必須)

POSTAL_CODE

VARCHAR2(16)

POIの郵便番号。(必須)

VANITY_CITY

VARCHAR2(35)

一般的にPOIに関連付けられている市の名前(その市が、POIが含まれる実際の市とは異なる場合)。たとえば、London Heathrow空港は、実際にはグレーター・ロンドンの一部のHayesという町にありますが、この空港は、一般的にLondonのみに関連付けられる傾向があります。このような場合、VANITY_CITYの値はLondonです。(省略可能)

ROAD_SEGMENT_ID

NUMBER

POIが位置する道路セグメントのID。(必須)

SIDE

VARCHAR2(1)

POIが位置する通りの側。可能な値はL(左側)またはR(右側)です。(必須)

PERCENT

NUMBER

道路に対するPOIの位置の割合値。これは、通りセグメントの開始点からPOIまでの距離を通りセグメントの長さで除算して求められます。(必須)

TELEPHONE_NUMBER

VARCHAR2(20)

POIの電話番号。(省略可能)

LOC_LONG

NUMBER

POIの経度値。(必須)

LOC_LAT

NUMBER

POIの緯度値。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

POIが属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

11.5.8 GC_POSTAL_CODE_<接尾辞>表

郵便番号が住所形式で使用される場合、GC_POSTAL_CODE_<接尾辞>表(たとえば、GC_POSTAL_CODE_US)には、その表名の接尾辞に関連付けられた国(または国のグループ)の郵便番号情報が格納されます。この表には、郵便番号ごとに1つ以上の行が含まれます(1つの郵便番号に関連付けられているSettlementが複数ある場合は、その郵便番号に対して複数行を格納できます)。GC_POSTAL_CODE_<接尾辞>表に含まれる列を、表11-14に示します。

表11-14 GC_POSTAL_CODE_<接尾辞>表

列名 データ型 説明

POSTAL_CODE

VARCHAR2(16)

郵便番号の領域の郵便番号。(必須)

SETTLEMENT_NAME

VARCHAR2(64)

郵便番号が属するSettlementの名前。(郵便番号がSettlementに関連付けられている場合は必須)

MUNICIPALITY_NAME

VARCHAR2(64)

郵便番号が属するMunicipalityの名前。(郵便番号がMunicipalityに関連付けられている場合は必須)

REGION_NAME

VARCHAR2(64)

郵便番号が属するRegionの名前。(郵便番号がRegionに関連付けられている場合は必須)

LANG_CODE

VARCHAR2(3)

領域に関連付けられている言語の、3文字のISO各国語コード。(必須)

SETTLEMENT_ID

NUMBER(10)

郵便番号が属するSettlementのID番号。(郵便番号がSettlementに関連付けられている場合は必須)

MUNICIPALITY_ID

NUMBER(10)

郵便番号が属するMunicipalityのID番号。(郵便番号がMunicipalityに関連付けられている場合は必須)

REGION_ID

NUMBER(10)

郵便番号が属するRegionのID番号。(郵便番号がRegionに関連付けられている場合は必須)

CENTER_LONG

NUMBER

郵便番号の領域の中心の経度値。中心(経度、緯度)値は、中心に最も近い道路セグメントの開始点または終了点(どちらか近い方の点)に設定されます。CENTER_LONG値およびCENTER_LAT値は、正しく設定することをお薦めします。これらの値が設定されていない場合、領域をジオコードして得られる経度と緯度の値は、(0,0)になります。(省略可能)

CENTER_LAT

NUMBER

領域の中心の緯度値。(CENTER_LONG列の説明を参照)。(省略可能)

ROAD_SEGMENT_ID

NUMBER(10)

領域の中心が設定される道路セグメントのID。ジオコーダをOracle Spatial and Graphルーティング・エンジン(「ルーティング・エンジン」を参照)と連携させるには、この値を正しく設定する必要があります(連携させる必要がない場合は、0 (ゼロ)以外の任意の値に設定できますが、NULLにはできません)。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

領域が属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

NUM_STREETS

NUMBER

この郵便番号の領域内の通りの番号。(省略可能)

11.5.9 GC_ROAD_<接尾辞>表

GC_ROAD_<接尾辞>表(たとえば、GC_ROAD_US)には、その表名の接尾辞に関連付けられた国の道路情報が格納されます。道路は、同じSettlement領域内の同じ名前の道路セグメントの集合であり、道路セグメントは「GC_ROAD_SEGMENT_<接尾辞>表」で定義されています。GC_ROAD_<接尾辞>表には、道路ごとに1つ以上の行が含まれます。(たとえば、1つの道路に関連付けられているSettlementが複数ある場合は、その道路に対して複数行を格納できます。)GC_ROAD_<接尾辞>表に含まれる列を、表11-15に示します。

表11-15 GC_ROAD_<接尾辞>表

列名 データ型 説明

ROAD_ID

NUMBER

道路のID番号。(必須)

SETTLEMENT_ID

NUMBER(10)

道路が属するSettlementのID番号。(道路がSettlementに関連付けられている場合は必須)

MUNICIPALITY_ID

NUMBER(10)

道路が属するMunicipalityのID番号。(道路がMunicipalityに関連付けられている場合は必須)

PARENT_AREA_ID

NUMBER(10)

道路が属するMunicipalityの親領域のID番号。(道路が親領域に関連付けられている場合は必須)

LANG_CODE

VARCHAR2(3)

道路名に使用する言語の、3文字のISO各国語コード。(必須)

NAME

VARCHAR2(64)

道路の名前。種類、接頭辞、接尾辞がある場合は、それらも含みます。たとえば、NAMEとしてN Main Stを指定できます。(必須)

BASE_NAME

VARCHAR2(64)

道路の名前。種類、接頭辞、接尾辞がある場合は、それらを除外した名前です。たとえば、NAMEがN Main Stの場合、BASE_NAMEはMainです。(必須)

PREFIX

VARCHAR2(32)

道路名の接頭辞。たとえば、NAMEがN Main Stの場合、PREFIXはNです。(道路名に接頭辞がある場合は必須)

SUFFIX

VARCHAR2(32)

道路名の接尾辞。たとえば、NAMEがMain St NWの場合、SUFFIXはNWです。(道路名に接尾辞がある場合は必須)

STYPE_BEFORE

VARCHAR2(32)

ベース名の前に記述される通りの種類。たとえば、NAMEがAvenue Victor Hugoの場合、STYPE_BEFOREはAvenue、BASE_NAMEはVictor Hugoです。(ベース名の前に道路の種類がある場合は必須)

STYPE_AFTER

VARCHAR2(32)

ベース名の後ろに記述される通りの種類。たとえば、NAMEがMain Stの場合、STYPE_AFTERはSt、BASE_NAMEはMainです。(ベース名の後ろに道路の種類がある場合は必須)

STYPE_ATTACHED

VARCHAR2(1)

通りの種類が通りの名前と同じ語に含まれる場合はT、通りの名前とは別の語になる場合はFです。たとえば、ドイツでの通りの住所が123 Beethovenstrassの場合、通りの種類はstrassで、通りの名前Beethovenと同じ語の中に含まれています。(必須)

START_HN

NUMBER(5)

道路上の最も小さい住居番号。指定した住居番号がこの値よりも小さい場合に戻されます。

CENTER_HN

NUMBER(5)

中心住居番号の先頭の数字の部分。中心住居番号とは、道路セグメントの中央(道路全体の中央)の開始点の左側にある住居番号です。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)入力された住所で住居番号が指定されていない場合に戻されます。(必須)

END_HN

NUMBER(5)

道路上の最も大きい住居番号。指定した住居番号がこの値よりも大きい場合に戻されます。

START_HN_SIDE

VARCHAR2(1)

最も小さい住居番号の道路の一方の側(左側はL、右側はR)。

CENTER_HN_SIDE

VARCHAR2(1)

中心住居番号の道路の一方の側(左側はL、右側はR)。中心住居番号とは、道路セグメントの中央(道路全体の中央)の開始点の左側にある住居番号です。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)(道路上に家がある場合は必須)

END_HN_SIDE

VARCHAR2(1)

最も大きい住居番号の道路の一方の側(左側はL、右側はR)。

START_LONG

NUMBER

最も小さい住居番号の経度値。

START_LAT

NUMBER

最も小さい住居番号の緯度値。

CENTER_LONG

NUMBER

中心住居番号の経度値。中心住居番号とは、道路セグメントの中央(道路全体の中央)の開始点の左側にある住居番号です。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)(必須)

CENTER_LAT

NUMBER

中心住居番号の緯度値。(CENTER_LONG列の説明も参照。)(必須)

END_LONG

NUMBER

最も大きい住居番号の経度値。

END_LAT

NUMBER

最も大きい住居番号の緯度値。

START_ROAD_SEG_ID

NUMBER(5)

道路の開始点の道路セグメントのID番号。

CENTER_ROAD_SEG_ID

NUMBER(5)

道路の中心点の道路セグメントのID番号。(必須)

END_ROAD_SEG_ID

NUMBER(5)

道路の終了点の道路セグメントのID番号。

POSTAL_CODE

VARCHAR2(16)

道路の郵便番号。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

道路が属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

CENTER_HN2

VARCHAR2(10)

中心住居番号の2番目の部分。(「GC_ROAD_SEGMENT_<接尾辞>表」表11-16の後ろに示す住居番号の説明を参照。)(必須)

11.5.10 GC_ROAD_SEGMENT_<接尾辞>表

GC_ROAD_SEGMENT_<接尾辞>表(たとえば、GC_ROAD_SEGMENT_US)には、その表名の接尾辞に関連付けられた国の道路セグメント情報が格納されます。道路セグメントとは、道路に沿った2つの連続する交差点の間にある道路の部分で、交差点とは、複数の道路が出会うまたは交差する場所のことです。また、道路セグメントは、道路の開始点(または終了点)と道路に沿った最も近い交差点の間にある道路の部分でもあり、道路に沿った交差点がない場合は、道路の全長になります。GC_ROAD_SEGMENT_<接尾辞>表には、道路セグメントごとに行が1つ含まれ、表11-16に示す列があります。

表11-16 GC_ROAD_SEGMENT_<接尾辞>表

列名 データ型 説明

ROAD_SEGMENT_ID

NUMBER

道路セグメントのID番号。(必須)

ROAD_ID

NUMBER

この道路セグメントが含まれる道路のID番号。(必須)

L_ADDR_FORMAT

VARCHAR2(1)

左側の住所形式。道路セグメントの左側に住居番号が1つ以上ある場合は、Nを指定します。ない場合は、NULLのままにしておきます。(必須)

R_ADDR_FORMAT

VARCHAR2(1)

右側の住所形式。道路セグメントの右側に住居番号が1つ以上ある場合は、Nを指定します。ない場合は、NULLのままにしておきます。(必須)

L_ADDR_SCHEME

VARCHAR2(1)

道路セグメントの左側の住居番号の付与方法。O (すべて奇数)、E (すべて偶数)またはM (奇数と偶数の混在)を指定します。(必須)

R_ADDR_SCHEME

VARCHAR2(1)

道路セグメントの右側の住居番号の付与方法。O (すべて奇数)、E (すべて偶数)またはM (奇数と偶数の混在)を指定します。(必須)

START_HN

NUMBER(5)

この道路セグメント上の最も小さい住居番号。(必須)

END_HN

NUMBER(5)

この道路セグメント上の最も大きい住居番号。(必須)

L_START_HN

NUMBER(5)

左側の開始住居番号の先頭の数字部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(必須)

L_END_HN

NUMBER(5)

左側の終了住居番号の先頭の数字部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(必須)

R_START_HN

NUMBER(5)

右側の開始住居番号の先頭の数字部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(必須)

R_END_HN

NUMBER(5)

右側の終了住居番号の先頭の数字部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(必須)

POSTAL_CODE

VARCHAR2(16)

道路セグメントの郵便番号。道路セグメントの左側と右側で郵便番号が異なる場合は、POSTAL_CODE列を除くすべての列の値と一致する道路セグメントの行を2つ作成します。(必須)

GEOMETRY

SDO_GEOMETRY

道路セグメントを表す空間ジオメトリ・オブジェクト。(必須)

COUNTRY_CODE_2

VARCHAR2(2)

道路セグメントが属する国の2文字のISO国コード。(必須)

PARTITION_ID

NUMBER

ジオコーダ・データを地理的な境界でパーティション化する際に使用されるパーティション・キー。データがパーティション化されていない場合は、値を1に設定します。(必須)

L_START_HN2

VARCHAR2(10)

左側の開始住居番号の2番目の部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(左側の開始住居番号に2番目の部分がある場合は必須)

L_END_HN2

VARCHAR2(10)

左側の終了住居番号の2番目の部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(左側の終了住居番号に2番目の部分がある場合は必須)

R_START_HN2

VARCHAR2(10)

右側の開始住居番号の2番目の部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(右側の開始住居番号に2番目の部分がある場合は必須)

R_END_HN2

VARCHAR2(10)

右側の終了住居番号の2番目の部分(この表の後ろに示す住居番号の説明を参照)。(この表の後ろに示す住居番号の説明を参照。)(右側の終了住居番号に2番目の部分がある場合は必須)

住居番号は、道路セグメントに沿った建物の位置を識別しやすくする住所の記述的な部分です。住居番号は、2つの要素(先頭の数字部分とそれ以外の2番目の部分)に分けられます。先頭の数字部分は、住居番号の文字列全体の最初から始まり、数字以外の最初の文字の直前で終了する(数字以外の文字がある場合)、住居番号の数字の部分です。住居番号に数字以外の文字が含まれる場合は、文字列の数字以外の最初の文字から最後の文字までが、住居番号の2番目の部分になります。たとえば、住居番号が123の場合は、先頭の数字部分は123で、2番目の部分はNULLですが、住居番号が123A23の場合は、先頭の数字部分は123で、2番目の部分はA23です。

開始住居番号とは、道路セグメントの開始点の住居番号のことで、道路セグメントの開始点とは、道路セグメント・ジオメトリの最初の形状点です。終了住居番号とは、道路セグメントの終了点の住居番号のことで、道路セグメントの終了点とは、道路セグメント・ジオメトリの最後の形状点です。左側と右側の開始住居番号は、左側と右側の終了住居番号より大きくてもかまいません。データ表の住居番号属性は、道路セグメントに沿った建物の位置を確認する際に、これらの規則に準拠します。

11.5.11 ジオコーディングを行うための表の索引

ベンダーから提供される表を使用してジオコーディングを行うには、多くの表で索引を作成する必要があり、これらの索引の名前は特定の要件に従う必要があります。

例11-5に、必要な索引を作成するCREATE INDEX文の形式を示します。各文では、<suffix>で示されているすべての接尾辞を適切な文字列と置き換える(たとえば、米国の場合はUSと置き換える)必要があることを除いて、例11-5に示すように、索引名、表名、列名、および列名の順序(複数の列に索引が付けられている場合)を使用する必要があります。この例の最初の索引は空間索引であることに注意してください。オプションで、他の有効なキーワードや句をCREATE INDEX文に含めることもできます。

例11-5 ジオコーディングを行うための表に必要な索引

CREATE INDEX idx_<suffix>_road_geom ON gc_road_segment_<suffix> (geometry) INDEXTYPE IS mdsys.spatial_index;
CREATE INDEX idx_<suffix>_road_seg_rid ON gc_road_segment_<suffix> (road_id, start_hn, end_hn);
CREATE INDEX idx_<suffix>_road_id ON gc_road_<suffix> (road_id);
CREATE INDEX idx_<suffix>_road_setbn ON gc_road_<suffix> (settlement_id, base_name);
CREATE INDEX idx_<suffix>_road_munbn ON gc_road_<suffix> (municipality_id, base_name);
CREATE INDEX idx_<suffix>_road_parbn ON gc_road_<suffix> (parent_area_id, country_code_2, base_name);
CREATE INDEX idx_<suffix>_road_setbnsd ON gc_road_<suffix> (settlement_id, soundex(base_name));
CREATE INDEX idx_<suffix>_road_munbnsd ON gc_road_<suffix> (municipality_id, soundex(base_name));
CREATE INDEX idx_<suffix>_road_parbnsd ON gc_road_<suffix> (parent_area_id, country_code_2, soundex(base_name));
CREATE INDEX idx_<suffix>_inters ON gc_intersection_<suffix> (country_code_2, road_id_1, road_id_2);
CREATE INDEX idx_<suffix>_area_name_id ON gc_area_<suffix> (country_code_2, area_name, admin_level);
CREATE INDEX idx_<suffix>_area_id_name ON gc_area_<suffix> (area_id, area_name, country_code_2);
CREATE INDEX idx_<suffix>_poi_name ON gc_poi_<suffix> (country_code_2, name);
CREATE INDEX idx_<suffix>_poi_setnm ON gc_poi_<suffix> (country_code_2, settlement_id, name);
CREATE INDEX idx_<suffix>_poi_ munnm ON gc_poi_<suffix> (country_code_2, municipality_id, name);
CREATE INDEX idx_<suffix>_poi_ regnm ON gc_poi_<suffix> (country_code_2, region_id, name);
CREATE INDEX idx_<suffix>_ postcode ON gc_postal_code_<suffix> (country_code_2, postal_code);
CREATE INDEX idx_<suffix>_addrpt_addr ON gc_address_point_<suffix> (road_segment_id, road_id, house_number, side);