자동 완성은 최종 사용자가 검색 쿼리를 입력할 때 반응형 피드백을 제공합니다. 이는 부분적이거나 철자가 잘못된 자유 형식 텍스트를 기반으로 주소 및 관심 지역에 대한 제안을 제공합니다. 장소 색인 리소스를 사용하여 자동 완성 제안을 요청하고 결과 제안을 애플리케이션에 표시할 수 있습니다.
Amazon Location은 자동 완성 제안 저장을 지원하지 않습니다. 자동 완성 호출에 사용되는 장소 색인이 저장된 지오코드와 함께 사용하도록 구성된 경우 오류가 반환됩니다. 저장된 지오코드 및 제안 쿼리를 사용하려면 여러 장소 색인을 생성하고 구성하세요.
이 섹션에서는 자동 완성 요청을 보내는 방법을 설명합니다. 가장 기본적인 형태의 요청부터 시작하여 자동 완성 검색 결과의 관련성을 높이는 데 사용할 수 있는 선택적 파라미터를 보여줍니다.
자동 완성 사용
SearchPlaceIndexForSuggestions
작업을 사용하여 자동 완성 제안에 대한 간단한 요청을 제출할 수 있습니다. 가장 간단한 형태의 요청에는 필수 파라미터가 하나뿐인 쿼리 Text
이 있습니다.
-
Text
– 장소 제안을 생성하는 데 사용할 자유 형식의 부분 텍스트입니다. 예를 들어, 문자열eiffel tow
.
반환되는 결과 수를 제한하려면 선택적 MaxResults
파라미터를 추가합니다.
-
MaxResults
– 쿼리 응답에 반환되는 결과 수를 제한합니다.
Amazon Location API 또는 AWS CLI을 사용할 수 있습니다.
다음 예는 장소 색인 리소스인 ExamplePlaceIndex
에서 장소 이름의 일부만 표시한 캠프
를 기반으로 최대 5개
의 제안을 검색하기 위한 SearchPlaceIndexForSuggestions
요청입니다.
POST /places/v0/indexes/ExamplePlaceIndex
/search/suggestions
Content-type: application/json
{
"Text": "kamp
",
"MaxResults": 5
}
SearchPlaceIndexForSuggestions
을 호출하면 각 장소의 이름과 ID가 포함된 장소 목록이 생성됩니다. 이러한 결과를 사용하여 텍스트 상자 아래에 선택 항목의 드롭다운 목록을 제공하는 등 사용자가 입력할 때 검색할 수 있는 내용을 제안할 수 있습니다. 예를 들어, 사용자가 kamp
를 입력한 결과에 따른 제안 결과는 다음과 같습니다.
{
"Summary": {
"Text": "kamp",
"MaxResults": 5,
"DataSource": "Esri"
},
"Results": [
{
"Text": "Kampuchea",
"PlaceId": "AQAAAIAADsn2T3KdrRWeaXLeVEyjNx_JfeTsMB0NVCEAnAZoJ-o3nqdlJZAdgcT2oWi1w9pS4wXXOk3O1vsKlGsPyHjV4EJxsu289i3hVO_BUPgP7SFoWAi8BW2v7LvAjQ5NfUPy7a1v9ajT3feIqcUZszWSTqKbJHFYvQqW7wdqhpQq3Wy-et39ZQDWSPLZUzgcjN-6VD2gyKkH0Po7gSm8YSJNSQ"
},
{
"Text": "Kampoul, Kabul, AFG",
"PlaceId": "AQAAAIAAA1mxl_-9ffzXD07rBgo9fh6E01Pd1YKvuT5rz2qBDxqBkhTlgkeiOPR2s5sa3YBLxUqQI8bhymsYcu9R-DkX3L9QSi3CB5LhNPu160iSFJo6H8S1CrxO3QsJALhrr9mdbg0R4R4YDywkhkeBlnbn7g5C5LI_wYx873WeQZuilwtsGm8jcMA0Ya5oK4netQC6piVx6zmnPdwBs-UeXcb_bg"
},
{
"Text": "Kampala, UGA",
"PlaceId": "AQAAAIAAzZfZt3qMruKGObyhP6MM0pqy2L8SULlVWT7a3ertLBRS6Q5n7I4s9D7E0nRHADAj7mL7kvX1Q8HD-mpuiATXNJ1Ix4_V_1B15zHe8jlYKMWvXbgbO8cMpgR2fqYqZMR1x-dfBOO8OoqujKZldvPIDK1kNe3GwcaqvvMWWPMeaGd203brFynubAe-MmFF-Gjz-WBMfUy9og6MV7bkk6NGCA"
},
{
"Text": "Kampar, Riau, IDN",
"PlaceId": "AQAAAIAAvbXXx-srOi111tHOkPdao0GF7WQ_KaZ444SEnevycp6Gtf_2JWgPfCE5bIQCYwya1uZQpX2a8YJoFm2K7Col4fLu7IK0yYOLhZx4kp6QzbG4xEAGzfWtWq6nfbb0lZfuHY6r0g1sRlN1aucvwim4AEcKRzckqaa93JI8064pj6Q59kN37pAa3JX4ayEzH1DzIL3m3oqxzd4O16yGfhAIgA"
},
{
"Text": "Kampung Pasir Gudang Baru, Johor, MYS",
"PlaceId": "AQAAAIAA4HLQHdjUDcaaXLE9wtNIT1cjQYLgkBnMoG2eNN0AaQ8PJoWabLRXmmPUaAj8MAD6vT0i6zqaun5Mixyj7vnYXrk2xp59cbgdqvQaPoWhSCVxBOX0WGs3cZ8TnIRn3c-6v8_UfmqC7es1gUyECfMGK04VBKiwpHwCzjNsqymkd9BC3A9K3QlMgd3dkrGjv_vV94iLlnFTbaecrckl2UDCkA"
}
]
}
다음 섹션에서는 이러한 결과의 PlaceID
을 사용하는 방법을 설명합니다.
자동완성 결과 사용
SearchPlaceIndexForSuggestions
을 호출하면 각 장소의 이름과 ID가 포함된 장소 목록이 생성됩니다. 이러한 결과를 사용하여 텍스트 상자 아래에 선택 항목의 드롭다운 목록을 제공하는 등 사용자가 입력할 때 검색할 수 있는 내용을 제안할 수 있습니다. 사용자가 결과 중 하나를 선택하면 선택한 ID를 사용하여 GetPlace 작업을 호출하여 위치, 주소 또는 기타 세부 정보를 포함하여 해당 장소의 세부 정보를 반환할 수 있습니다.
참고
PlaceId
은 원래의 검색 요청 및 GetPlace
의 호출에서 다음 항목이 모두 동일한 경우에만 유효합니다.
-
AWS 계정 고객
-
AWS 리전
-
장소 색인 리소스에 지정된 데이터 제공자
일반적으로 GetPlace
을 Amazon Location API와 함께 사용합니다. 다음 예는 이전 섹션의 제안 중 하나를 찾기 위한 GetPlace
요청입니다. 이 예는 장소 이름의 일부만 표시한 kamp
를 기반으로 합니다.
POST /places/v0/indexes/
ExamplePlaceIndex
/places/AQAAAIAADsn2T3KdrRWeaXLeVEyjNx_JfeTsMB0NVCEAnAZoJ-o3nqdlJZAdgcT2oWi1w9pS4wXXOk3O1vsKlGsPyHjV4EJxsu289i3hVO_BUPgP7SFoWAi8BW2v7LvAjQ5NfUPy7a1v9ajT3feIqcUZszWSTqKbJHFYvQqW7wdqhpQq3Wy-et39ZQDWSPLZUzgcjN-6VD2gyKkH0Po7gSm8YSJNSQ
위치 주변 자동 완성
SearchPlaceIndexForSuggestions
을 사용하여 자동 완성 장소 제안을 검색할 때 다음과 같은 선택적 파라미터를 추가하여 지역적으로 더 관련성이 높은 제안을 받을 수 있습니다.
-
BiasPosition
– 주변에서 검색하려는 위치.[longitude, latitude]
과 같이 정의됩니다.
다음 예에서는 SearchPlaceIndexForSuggestions
요청을 사용하여 장소 색인 리소스인 ExamplePlaceIndex
에서 위치 [32.5827
, 0.3169
] 근처의 부분 쿼리 kamp
와 일치하는 장소 제안을 검색합니다.
POST /places/v0/indexes/ExamplePlaceIndex/search/suggestions
Content-type: application/json
{
"Text": "kamp
",
"BiasPosition": [32.5827
,0.3169
]
}
[-96.7977
, 32.7776
]과 같이 다른 항목 BiasPosition
가 선택되면 동일한 항목 Text
에 대해 반환되는 제안 내용이 달라질 수 있습니다.
경계 박스 내 자동 완성
다음과 같은 선택적 파라미터를 추가하여 지정된 경계 내에 있는 장소에 대한 제안만 받도록 자동 완성 검색 범위를 좁힐 수 있습니다.
-
FilterBBox
– 상자 경계 내의 좌표로 결과를 필터링하도록 지정하는 경계 상자.[LongitudeSW, LatitudeSW, LongitudeNE, LatitudeNE]
과 같이 정의됩니다.참고
요청은
FilterBBox
및BiasPosition
파라미터를 모두 포함할 수 없습니다. 요청에서 두 파라미터를 모두 지정하면ValidationException
오류가 반환됩니다.
다음 예에서는 SearchPlaceIndexForSuggestions
요청을 사용하여 장소 색인 리소스인 ExamplePlaceIndex
에서 부분 쿼리 kamp
와 일치하며 다음과 같은 경계 상자 내에 포함된 장소 제안을 검색합니다.
-
경계 상자 남서쪽 모서리의 경도는
32.5020
입니다. -
경계 상자 남서쪽 모서리의 위도는
0.2678
입니다. -
경계 상자의 북동쪽 모서리 경도는
32.6129
입니다. -
경계 상자 북동쪽 모서리의 위도는
0.3502
입니다.
POST /places/v0/indexes/ExamplePlaceIndex/search/suggestions
Content-type: application/json
{
"Text": "kamp
",
"FilterBBox": [
32.5020
, 0.2678
,
32.6129
, 0.3502
]
}
[-97.9651
, 32.0640
, -95.1196
, 34.0436
]과 같이 다른 항목FilterBBox
가 선택되면 동일한 Text
항목에 대해 반환되는 제안 내용이 달라집니다.
특정 국가 내 자동 완성
다음과 같은 선택적 파라미터를 추가하여 특정 국가 또는 국가 집합 내에 위치한 장소에 대한 제안만 받도록 자동 완성 검색 범위를 좁힐 수 있습니다.
-
FilterCountries
– 장소 제안을 검색하려는 국가. ISO 31663문자 국가 코드를 사용하여 요청 한 번에 최대 100개의 국가를 지정할 수 있습니다. 예를 들어, 오스트레일리아의 경우 AUS
을 사용합니다.
다음 예에서는 SearchPlaceIndexForSuggestions
요청을 사용하여 장소 색인 리소스인 ExamplePlaceIndex
에서 부분 쿼리 kamp
와 일치하며 우간다, 케냐 또는 탄자니아에 포함된 장소 제안을 검색합니다.
POST /places/v0/indexes/ExamplePlaceIndex/search/suggestions
Content-type: application/json
{
"Text": "kamp",
"FilterCountries": ["UGA
", "KEN
", "TZA
"]
}
[“미국
”]과 같이 다른 항목 FilterCountries
가 선택된 경우 동일한 항목 Text
에 대해 반환되는 제안 내용이 달라집니다.
응답의 예
다음은 텍스트 kamp
를 사용한 SearchPlaceIndexForSuggestions
작업에 대한 자동 완성 제안 응답의 예입니다.
{
"Summary": {
"Text": "kamp",
"MaxResults": 5,
"DataSource": "Esri"
},
"Results": [
{
"Text": "Kampuchea",
"PlaceId": "AQAAAIAADsn2T3KdrRWeaXLeVEyjNx_JfeTsMB0NVCEAnAZoJ-o3nqdlJZAdgcT2oWi1w9pS4wXXOk3O1vsKlGsPyHjV4EJxsu289i3hVO_BUPgP7SFoWAi8BW2v7LvAjQ5NfUPy7a1v9ajT3feIqcUZszWSTqKbJHFYvQqW7wdqhpQq3Wy-et39ZQDWSPLZUzgcjN-6VD2gyKkH0Po7gSm8YSJNSQ"
},
{
"Text": "Kampoul, Kabul, AFG",
"PlaceId": "AQAAAIAAA1mxl_-9ffzXD07rBgo9fh6E01Pd1YKvuT5rz2qBDxqBkhTlgkeiOPR2s5sa3YBLxUqQI8bhymsYcu9R-DkX3L9QSi3CB5LhNPu160iSFJo6H8S1CrxO3QsJALhrr9mdbg0R4R4YDywkhkeBlnbn7g5C5LI_wYx873WeQZuilwtsGm8jcMA0Ya5oK4netQC6piVx6zmnPdwBs-UeXcb_bg"
},
{
"Text": "Kampala, UGA",
"PlaceId": "AQAAAIAAzZfZt3qMruKGObyhP6MM0pqy2L8SULlVWT7a3ertLBRS6Q5n7I4s9D7E0nRHADAj7mL7kvX1Q8HD-mpuiATXNJ1Ix4_V_1B15zHe8jlYKMWvXbgbO8cMpgR2fqYqZMR1x-dfBOO8OoqujKZldvPIDK1kNe3GwcaqvvMWWPMeaGd203brFynubAe-MmFF-Gjz-WBMfUy9og6MV7bkk6NGCA"
},
{
"Text": "Kampar, Riau, IDN",
"PlaceId": "AQAAAIAAvbXXx-srOi111tHOkPdao0GF7WQ_KaZ444SEnevycp6Gtf_2JWgPfCE5bIQCYwya1uZQpX2a8YJoFm2K7Col4fLu7IK0yYOLhZx4kp6QzbG4xEAGzfWtWq6nfbb0lZfuHY6r0g1sRlN1aucvwim4AEcKRzckqaa93JI8064pj6Q59kN37pAa3JX4ayEzH1DzIL3m3oqxzd4O16yGfhAIgA"
},
{
"Text": "Kampung Pasir Gudang Baru, Johor, MYS",
"PlaceId": "AQAAAIAA4HLQHdjUDcaaXLE9wtNIT1cjQYLgkBnMoG2eNN0AaQ8PJoWabLRXmmPUaAj8MAD6vT0i6zqaun5Mixyj7vnYXrk2xp59cbgdqvQaPoWhSCVxBOX0WGs3cZ8TnIRn3c-6v8_UfmqC7es1gUyECfMGK04VBKiwpHwCzjNsqymkd9BC3A9K3QlMgd3dkrGjv_vV94iLlnFTbaecrckl2UDCkA"
}
]
}