기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
쿼리 제안
기능 지원은 인덱스 유형 및 사용 중인 검색API에 따라 다릅니다. 이 기능이 사용 중인 인덱스 유형 및 검색 API에 지원되는지 확인하려면 인덱스 유형을 참조하세요.
Amazon Kendra
쿼리 제안은 사용자가 검색 쿼리를 더 빠르게 입력하고 검색 결과를 안내하는 데 도움이 될 수 있습니다.
Amazon Kendra 는 다음 중 하나를 기반으로 사용자와 관련된 쿼리를 제안합니다.
-
쿼리 기록 또는 쿼리 로그의 인기 쿼리
-
문서 필드/속성의 내용
QUERY
또는 DOCUMENT_ATTRIBUTES
및 호출SuggestionTypes
로를 설정하여 쿼리 기록 또는 문서 필드 사용에 대한 기본 설정을 지정할 수 있습니다. GetQuerySuggestions. 기본적으로는 쿼리 기록을 Amazon Kendra 사용하여 제안을 기반으로 합니다. 를 호출할 때 쿼리 기록과 문서 필드가 모두 활성화된 경우 UpdateQuerySuggestionsConfig 문서 필드를 사용하도록 SuggestionTypes
기본 설정을 지정하지 않은 경우는 쿼리 기록을 Amazon Kendra 사용합니다.
콘솔을 사용하는 경우 쿼리 기록 또는 문서 필드를 기반으로 쿼리를 제안할 수 있습니다. 먼저 인덱스를 선택한 다음 탐색 메뉴의 보강에서 쿼리 제안을 선택합니다. 그런 다음 쿼리 제안 구성을 선택합니다. 쿼리 제안을 구성하면 오른쪽 패널에서 쿼리 기록 또는 문서 필드를 선택하고 검색 창에 검색 쿼리를 입력할 수 있는 검색 콘솔로 이동합니다.
기본적으로 쿼리 기록과 문서 필드를 사용하는 쿼리 제안은 모두 추가 비용 없이 활성화됩니다. UpdateQuerySuggestionsConfig
API를 사용하여 언제든지 이러한 유형의 쿼리 제안을 비활성화할 수 있습니다. 쿼리 기록을 기반으로 쿼리 제안을 비활성화하려면 UpdateQuerySuggestionsConfig
를 호출할 때 Mode
를 DISABLED
로 설정합니다. 문서 필드를 기반으로 하는 쿼리 제안을 비활성화하려면 문서 필드 구성에서 AttributeSuggestionsMode
를 INACTIVE
로 설정한 다음 UpdateQuerySuggestionsConfig>
를 호출하세요. 콘솔을 사용하는 경우 쿼리 제안 설정에서 쿼리 제안을 비활성화할 수 있습니다.
쿼리 제안은 대/소문자를 구분하지 않습니다.는 쿼리 접두사와 제안된 쿼리를 소문자로 Amazon Kendra 변환하고, 모든 단일 및 큰 따옴표를 무시하고, 여러 공백 문자를 단일 공백으로 바꿉니다. Amazon Kendra 는 다른 모든 특수 문자를 그대로 일치시킵니다.는 사용자가 2자 미만 또는 60자를 초과하는 문자를 입력하는 경우 제안을 표시하지 Amazon Kendra 않습니다.
쿼리 기록을 사용한 쿼리 제안
기능 지원은 인덱스 유형 및 사용 중인 검색API에 따라 다릅니다. 이 기능이 사용 중인 인덱스 유형 및 검색 API에 지원되는지 확인하려면 인덱스 유형을 참조하세요.
쿼리 기록 또는 쿼리 로그의 인기 있는 쿼리를 기반으로 사용자와 관련된 쿼리를 제안하도록 선택할 수 있습니다.는 사용자가 검색하고 이러한 쿼리에서 학습하는 모든 쿼리를 Amazon Kendra 사용하여 사용자에게 제안합니다. Amazon Kendra 는 쿼리를 입력하기 시작할 때 사용자에게 인기 있는 쿼리를 제안합니다.는 쿼리의 접두사 또는 처음 몇 문자가 사용자가 쿼리로 입력하기 시작한 것과 일치하는 경우 쿼리를 Amazon Kendra 제안합니다.
예를 들어, 사용자가 '예정된 이벤트'라는 쿼리를 입력하기 시작합니다. Amazon Kendra
는 쿼리 기록을 통해 많은 사용자가 '예정된 이벤트 2050'을 여러 번 검색했다는 사실을 알게 되었습니다. 사용자는 검색창 바로 아래에 '예정된 이벤트 2050'이 표시되어 검색 쿼리가 자동으로 완성되는 것을 볼 수 있습니다. 사용자가 이 쿼리 제안을 선택하면 검색 결과에 '새 이벤트: 2050년에 무슨 일이 벌어지고 있는가' 문서가 반환됩니다.
가 사용자에게 제안할 적합한 쿼리를 Amazon Kendra 선택하는 방법을 지정할 수 있습니다. 예를 들어, 쿼리 제안이 최소 10명의 고유 사용자(기본값은 3)에 의해 검색되어야 하고, 지난 30일 이내에 검색되어야 하며, 블록 목록의 단어나 구문을 포함하지 않도록 지정할 수 있습니다.는 쿼리에 하나 이상의 검색 결과가 있고 4자 이상의 단어를 하나 이상 포함해야 Amazon Kendra 합니다.
제안할 쿼리를 선택하기 위한 설정
를 사용하여 제안에 대한 쿼리를 선택하도록 다음 설정을 구성할 수 있습니다. UpdateQuerySuggestionsConfig API:
-
모드 - 쿼리 기록을 사용하는 쿼리 제안은 ENABLED
또는 LEARN_ONLY
입니다. Amazon Kendra
는 기본적으로 쿼리 제안을 활성화합니다. LEARN_ONLY
는 쿼리 제안을 끕니다. 를 끄면 Amazon Kendra 계속 진행하여 제안을 배우지만 사용자에게 쿼리 제안을 하지 않습니다.
-
쿼리 로그 기간 - 쿼리 로그 기간의 쿼리가 얼마나 최신인가. 이 기간은 오늘부터 지난 날까지의 일수를 나타내는 정수 값입니다.
-
사용자 정보가 없는 쿼리 - 모든 쿼리를 포함하도록 TRUE
로 설정하거나 사용자 정보가 포함된 쿼리만 포함하도록 FALSE
로 설정합니다. 사용자가 쿼리를 실행할 때 검색 애플리케이션에 사용자 ID와 같은 사용자 정보가 포함된 경우 이 설정을 사용할 수 있습니다. 기본적으로 이 설정은 쿼리와 관련된 특정 사용자 정보가 없는 경우 쿼리를 필터링하지 않습니다. 하지만 이 설정을 사용하면 사용자 정보가 포함된 쿼리를 기반으로 제안만 할 수 있습니다.
-
순 사용자 - 쿼리를 사용자에게 제안하기 위해 해당 쿼리를 검색한 최소 순 사용자 수입니다. 이 숫자는 정수 값입니다.
-
쿼리 수 - 쿼리를 사용자에게 제안하기 위해 해당 쿼리가 검색되어야 하는 최소 횟수입니다. 이 숫자는 정수 값입니다.
이러한 설정은 쿼리를 인기 쿼리로 선택하여 사용자에게 제안하는 방식에 영향을 줍니다. 설정을 조정하는 방법은 특정 요구 사항에 따라 달라집니다. 예를 들면 다음과 같습니다.
-
사용자가 보통 한 달에 평균 한 번 검색하는 경우 쿼리 로그 기간의 일수를 30일로 설정할 수 있습니다. 이 설정을 사용하면 사용자의 최근 쿼리 대부분을 기간이 만료되기 전에 캡처할 수 있습니다.
-
사용자 정보가 포함된 쿼리 수가 적고 작은 샘플 크기를 기준으로 쿼리를 제안하지 않으려면 모든 사용자를 포함하도록 쿼리를 설정할 수 있습니다.
-
인기 있는 쿼리를 10명 이상의 순 사용자가 검색하고 100회 이상 검색한다고 정의하면 순 사용자를 10으로 설정하고 쿼리 수를 100으로 설정합니다.
설정 변경 내용이 즉시 적용되지 않을 수 있습니다. 를 사용하여 설정 변경 사항을 추적할 수 있습니다. DescribeQuerySuggestionsConfig API. 업데이트된 설정이 적용되는 데 걸리는 시간은 업데이트한 내용과 인덱스의 검색 쿼리 수에 따라 달라집니다. Amazon Kendra
는 설정을 변경하거나 차단 목록을 적용한 후 24시간마다 제안을 자동으로 업데이트합니다.
- CLI
-
쿼리 제안을 검색하려면
aws kendra get-query-suggestions \
--index-id index-id
\
--query-text "query-text" \
--suggestion-types '["QUERY"]' \
--max-suggestions-count 1 // If you want to limit the number of suggestions
쿼리 제안을 업데이트하려면
예를 들어 쿼리 로그 기간과 쿼리를 검색해야 하는 최소 횟수를 변경하려면:
aws kendra update-query-suggestions-config \
--index-id index-id
\
--query-log-look-back-window-in-days 30 \
--minimum-query-count 100
- Python
-
쿼리 제안을 검색하려면
import boto3
from botocore.exceptions import ClientError
kendra = boto3.client("kendra")
print("Get query suggestions.")
# Provide the index ID
index_id = "index-id"
# Provide the query text
query_text = "query"
# Provide the query suggestions type
query_suggestions_type = "QUERY"
# If you want to limit the number of suggestions
num_suggestions = 1
try:
query_suggestions_response = kendra.get_query_suggestions(
IndexId = index_id,
QueryText = query_text,
SuggestionTypes = query_suggestions_type,
MaxSuggestionsCount = num_suggestions
)
# Print out the suggestions you received
if ("Suggestions" in query_suggestions_response.keys()) {
for (suggestion: query_suggestions_response["Suggestions"]) {
print(suggestion["Value"]["Text"]["Text"]);
}
}
except ClientError as e:
print("%s" % e)
print("Program ends.")
쿼리 제안을 업데이트하려면
예를 들어 쿼리 로그 기간과 쿼리를 검색해야 하는 최소 횟수를 변경하려면:
import boto3
from botocore.exceptions import ClientError
import pprint
import time
kendra = boto3.client("kendra")
print("Updating query suggestions settings/configuration for an index.")
# Provide the index ID
index_id = "index-id"
# Configure the settings you want to update
minimum_query_count = 100
query_log_look_back_window_in_days = 30
try:
kendra.update_query_suggestions_config(
IndexId = index_id,
MinimumQueryCount = minimum_query_count,
QueryLogLookBackWindowInDays = query_log_look_back_window_in_days
)
print("Wait for Amazon Kendra to update the query suggestions.")
while True:
# Get query suggestions description of settings/configuration
query_sugg_config_response = kendra.describe_query_suggestions_config(
IndexId = index_id
)
# If status is not UPDATING, then quit
status = query_sugg_config_response["Status"]
print(" Updating query suggestions config. Status: " + status)
if status != "UPDATING":
break
time.sleep(60)
except ClientError as e:
print("%s" % e)
print("Program ends.")
쿼리 기록을 보존하면서 제안 지우기
기능 지원은 인덱스 유형 및 사용 중인 검색API에 따라 다릅니다. 이 기능이 사용 중인 인덱스 유형 및 검색 API에 지원되는지 확인하려면 인덱스 유형을 참조하세요.
를 사용하여 쿼리 제안을 지울 수 있습니다. ClearQuerySuggestions API. 제안을 지우면 기존 쿼리 제안만 삭제되고 쿼리 기록의 쿼리는 삭제되지 않습니다. 제안을 지우면는 제안을 지운 시점부터 쿼리 로그에 추가된 새 쿼리를 기반으로 새 제안을 Amazon Kendra 학습합니다.
- CLI
-
쿼리 제안을 지우려면
aws kendra clear-query-suggestions \
--index-id index-id
- Python
-
쿼리 제안을 지우려면
import boto3
from botocore.exceptions import ClientError
kendra = boto3.client("kendra")
print("Clearing out query suggestions for an index.")
# Provide the index ID
index_id = "index-id"
try:
kendra.clear_query_suggestions(
IndexId = index_id
)
# Confirm last cleared date-time and that there are no suggestions
query_sugg_config_response = kendra.describe_query_suggestions_config(
IndexId = index_id
)
print("Query Suggestions last cleared at: " + str(query_sugg_config_response["LastClearTime"]));
print("Number of suggestions available from the time of clearing: " + str(query_sugg_config_response["TotalSuggestionsCount"]));
except ClientError as e:
print("%s" % e)
print("Program ends.")
제안 없음
쿼리에 대한 제안이 표시되지 않으면 다음 이유 중 하나일 수 있습니다.
-
인덱스에가 학습 Amazon Kendra 할 쿼리가 충분하지 않습니다.
-
쿼리 제안 설정이 너무 엄격하여 대부분의 쿼리가 제안에서 필터링됩니다.
-
최근에 제안을 완료했지만 새로운 제안을 배우려면 새 쿼리가 누적될 시간이 Amazon Kendra 필요합니다.
를 사용하여 현재 설정을 확인할 수 있습니다. DescribeQuerySuggestionsConfig API.
문서 필드를 사용한 쿼리 제안
문서 필드의 콘텐츠를 기반으로 사용자와 관련된 쿼리를 제안하도록 선택할 수 있습니다. 쿼리 기록을 사용하여 다른 인기 있는 관련 쿼리를 제안하는 대신 쿼리를 자동으로 작성하는 데 유용한 문서 필드에 포함된 정보를 사용할 수 있습니다.는 로 설정된 필드Suggestable
의 관련 콘텐츠를 Amazon Kendra 찾고 사용자의 쿼리와 밀접하게 일치합니다. 그런 다음는 쿼리 입력을 시작할 때 사용자에게이 콘텐츠를 Amazon Kendra 제안합니다.
예를 들어 제안의 기반이 되는 제목 필드를 지정하고 사용자가 쿼리 'How amazon ken...'을 입력하기 시작하는 경우 가장 관련성이 높은 제목 'How Amazon Kendra Works'를 사용하여 검색을 자동으로 완료할 수 있습니다. 사용자는 검색 표시줄 바로 아래에 ' Amazon Kendra 작동 방식'이 표시되어 검색 쿼리를 자동으로 작성합니다. 사용자가이 쿼리 제안을 선택하면 ' Amazon Kendra 작동 방식' 문서가 검색 결과에 반환됩니다.
쿼리 제안을 위한 필드 구성의 일부로 필드를 Suggestable
로 설정하면 String
및 StringList
유형의 모든 문서 필드의 콘텐츠를 사용하여 쿼리를 제안할 수 있습니다. 차단 목록을 사용하여 특정 단어나 문구가 포함된 제안된 문서 필드가 사용자에게 표시되지 않도록 할 수도 있습니다. 하나의 차단 목록을 사용할 수 있습니다. 차단 목록은 쿼리 제안을 어떻게 설정하든(쿼리 기록 또는 문서 필드 사용) 상관없이 적용됩니다.
제안할 필드를 선택하기 위한 설정
를 사용하여 제안할 문서 필드를 선택하도록 다음 설정을 구성할 수 있습니다. AttributeSuggestionsConfig 및 호출 UpdateQuerySuggestionsConfig 인덱스 수준에서 설정을 업데이트하는 API:
-
필드/속성 제안 모드 - 문서 필드를 사용하는 쿼리 제안은 ACTIVE
또는 INACTIVE
입니다. Amazon Kendra
는 기본적으로 쿼리 제안을 활성화합니다.
-
제안 가능한 필드/속성 - 제안의 기반이 되는 필드 이름 또는 필드 키입니다. 필드 구성의 일부로 이러한 필드는 Suggestable
에 대해 TRUE
로 설정해야 합니다. 인덱스 수준에서 구성을 유지하면서 쿼리 수준에서 필드 구성을 재정의할 수 있습니다. GetQuerySuggestions API를 사용하여 AttributeSuggestionConfig
쿼리 수준에서 변경합니다. 쿼리 수준의 이 구성은 인덱스 수준에서 구성을 업데이트할 필요 없이 다양한 문서 필드를 사용하여 빠르게 실험해 보는 데 유용할 수 있습니다.
-
추가 필드/속성 - 쿼리 제안에 대한 응답에 포함하려는 추가 필드입니다. 이러한 필드는 응답에 추가 정보를 제공하는 데 사용되지만 제안의 근거로는 사용되지 않습니다.
설정 변경 내용이 즉시 적용되지 않을 수 있습니다. 를 사용하여 설정 변경 사항을 추적할 수 있습니다. DescribeQuerySuggestionsConfig API. 업데이트된 설정이 적용되는 시간은 업데이트에 따라 달라집니다.는 설정을 변경하거나 블록 목록을 적용한 후 24시간마다 제안을 Amazon Kendra 자동으로 업데이트합니다.
- CLI
-
인덱스 수준에서 구성을 변경할 필요 없이 쿼리 제안을 검색하고 쿼리 수준에서 문서 필드 구성을 재정의할 수 있습니다.
aws kendra get-query-suggestions \
--index-id index-id
\
--query-text "query-text" \
--suggestion-types '["DOCUMENT_ATTRIBUTES"]' \
--attribute-suggestions-config '{"SuggestionAttributes":'["field/attribute key 1", "field/attribute key 2"]', "AdditionalResponseAttributes":'["response field/attribute key 1", "response field/attribute key 2"]'}' \
--max-suggestions-count 1 // If you want to limit the number of suggestions
쿼리 제안을 업데이트하려면
예를 들어 인덱스 수준에서 문서 필드 구성을 변경하려면:
aws kendra update-query-suggestions-config \
--index-id index-id \
--attribute-suggestions-config '{"SuggestableConfigList": '[{"SuggestableConfig": "_document_title", "Suggestable": true}]', "AttributeSuggestionsMode": "ACTIVE"}'
- Python
-
인덱스 수준에서 구성을 변경할 필요 없이 쿼리 제안을 검색하고 쿼리 수준에서 문서 필드 구성을 재정의할 수 있습니다.
import boto3
from botocore.exceptions import ClientError
kendra = boto3.client("kendra")
print("Get query suggestions.")
# Provide the index ID
index_id = "index-id"
# Provide the query text
query_text = "query"
# Provide the query suggestions type
query_suggestions_type = "DOCUMENT_ATTRIBUTES"
# Override fields/attributes configuration at query level
configuration = {"SuggestionAttributes":
'["field/attribute key 1", "field/attribute key 2"]',
"AdditionalResponseAttributes":
'["response field/attribute key 1", "response field/attribute key 2"]'
}
# If you want to limit the number of suggestions
num_suggestions = 1
try:
query_suggestions_response = kendra.get_query_suggestions(
IndexId = index_id,
QueryText = query_text,
SuggestionTypes = [query_suggestions_type],
AttributeSuggestionsConfig = configuration,
MaxSuggestionsCount = num_suggestions
)
# Print out the suggestions you received
if ("Suggestions" in query_suggestions_response.keys()) {
for (suggestion: query_suggestions_response["Suggestions"]) {
print(suggestion["Value"]["Text"]["Text"]);
}
}
except ClientError as e:
print("%s" % e)
print("Program ends.")
쿼리 제안을 업데이트하려면
예를 들어 인덱스 수준에서 문서 필드 구성을 변경하려면:
import boto3
from botocore.exceptions import ClientError
import pprint
import time
kendra = boto3.client("kendra")
print("Updating query suggestions settings/configuration for an index.")
# Provide the index ID
index_id = "index-id"
# Configure the settings you want to update at the index level
configuration = {"SuggestableConfigList":
'[{"SuggestableConfig": "_document_title", "Suggestable": true}]',
"AttributeSuggestionsMode": "ACTIVE"
}
try:
kendra.update_query_suggestions_config(
IndexId = index_id,
AttributeSuggestionsConfig = configuration
)
print("Wait for Amazon Kendra to update the query suggestions.")
while True:
# Get query suggestions description of settings/configuration
query_sugg_config_response = kendra.describe_query_suggestions_config(
IndexId = index_id
)
# If status is not UPDATING, then quit
status = query_sugg_config_response["Status"]
print(" Updating query suggestions config. Status: " + status)
if status != "UPDATING":
break
time.sleep(60)
except ClientError as e:
print("%s" % e)
print("Program ends.")
문서 필드의 사용자 제어
쿼리 제안의 기반으로 사용할 문서 필드에 사용자 컨텍스트 필터링을 적용할 수 있습니다. 이는 문서에 대한 사용자 또는 그룹의 액세스 권한을 기준으로 문서 필드 정보를 필터링합니다. 인턴이 회사 포털을 검색하지만 회사 일급 기밀 문서에 액세스할 수 없는 경우를 예로 들 수 있습니다. 따라서 일급 기밀 문서의 제목이나 기타 제안 가능한 필드를 기반으로 제안된 쿼리는 인턴에게 표시되지 않습니다.
액세스 제어 목록(ACL)으로 문서를 인덱싱하여 어떤 사용자와 그룹에 어떤 문서에 대한 액세스 권한이 할당되는지 정의할 수 있습니다. 그런 다음 쿼리 제안을 위해 문서 필드에 사용자 컨텍스트 필터링을 적용할 수 있습니다. 현재 인덱스에 설정된 사용자 컨텍스트 필터링은 쿼리 제안에 대한 문서 필드 구성에 적용되는 사용자 컨텍스트 필터링과 동일합니다. 사용자 컨텍스트 필터링은 문서 필드 구성의 일부입니다. 를 사용합니다. AttributeSuggestionsGetConfig 및 호출 GetQuerySuggestions.
제안에서 특정 쿼리 또는 문서 필드 콘텐츠 차단
블록 목록은 사용자에게 특정 쿼리를 Amazon Kendra 제안하는 것을 중지합니다. 블록 목록은 쿼리 제안에서 제외하려는 단어 또는 구문의 목록입니다.는 블록 목록에 있는 단어 또는 구문의 정확한 일치가 포함된 쿼리를 Amazon Kendra 제외합니다.
차단 목록을 사용하면 쿼리 기록이나 문서 필드에 흔히 나타나며 Amazon Kendra
가 제안으로 선택할 수 있는 불쾌한 단어나 문구를 차단할 수 있습니다. 또한 블록 목록은가 공개적으로 릴리스하거나 발표할 준비가 되지 않은 정보가 포함된 쿼리를 Amazon Kendra 제안하지 못하도록 할 수 있습니다. 예를 들어, 사용자들이 잠재적 신제품의 향후 출시에 대해 자주 문의합니다. 하지만 아직 출시할 준비가 되지 않았으므로 제품을 제안하고 싶지 않을 것입니다. 제품 이름과 제품 정보가 포함된 쿼리는 제안 항목에서 차단할 수 있습니다.
를 사용하여 쿼리에 대한 블록 목록을 생성할 수 있습니다. CreateQuerySuggestionsBlockList API. 각각의 차단 단어나 문구를 텍스트 파일의 별도 줄에 넣습니다. 그런 다음 텍스트 파일을 Amazon S3 버킷에 업로드하고 in.의 파일에 경로 또는 위치를 제공합니다 Amazon S3. Amazon Kendra 현재는 블록 목록 하나만 생성할 수 있습니다.
Amazon S3 버킷에서 차단된 단어 및 구문의 텍스트 파일을 바꿀 수 있습니다. 에서 블록 목록을 업데이트하려면 Amazon KendraUpdateQuerySuggestionsBlockList API.
사용DescribeQuerySuggestionsBlockList 블록 목록의 상태를 가져오는 API입니다.는 다음과 같은 기타 유용한 정보도 제공할 DescribeQuerySuggestionsBlockList
수 있습니다.
-
차단 목록이 마지막으로 업데이트된 시기
-
현재 차단 목록에 있는 단어 또는 문구의 수
-
차단 목록을 만들 때 유용한 오류 메시지
를 사용할 수도 있습니다. ListQuerySuggestionsBlockLists 인덱스에 대한 블록 목록 요약 목록을 가져오는 API입니다.
차단 목록을 삭제하려면 DeleteQuerySuggestionsBlockList API를 사용합니다.
차단 목록에 대한 업데이트는 즉시 적용되지 않을 수 있습니다. DescribeQuerySuggestionsBlockList
API를 사용하여 업데이트를 추적할 수 있습니다.
- CLI
-
차단 목록을 만들려면
aws kendra create-query-suggestions-block-list \
--index-id index-id
\
--name "block-list-name" \
--description "block-list-description" \
--source-s3-path "Bucket=bucket-name,Key=query-suggestions/block_list.txt" \
--role-arn role-arn
차단 목록을 업데이트하려면
aws kendra update-query-suggestions-block-list \
--index-id index-id
\
--name "new-block-list-name" \
--description "new-block-list-description" \
--source-s3-path "Bucket=bucket-name,Key=query-suggestions/new_block_list.txt" \
--role-arn role-arn
차단 목록을 삭제하려면
aws kendra delete-query-suggestions-block-list \
--index-id index-id
\
--id block-list-id
- Python
-
차단 목록을 만들려면
import boto3
from botocore.exceptions import ClientError
import pprint
import time
kendra = boto3.client("kendra")
print("Create a query suggestions block list.")
# Provide a name for the block list
block_list_name = "block-list-name"
# Provide an optional description for the block list
block_list_description = "block-list-description"
# Provide the IAM role ARN required for query suggestions block lists
block_list_role_arn = "role-arn"
# Provide the index ID
index_id = "index-id"
s3_bucket_name = "bucket-name"
s3_key = "query-suggestions/block_list.txt"
source_s3_path = {
'Bucket': s3_bucket_name,
'Key': s3_key
}
try:
block_list_response = kendra.create_query_suggestions_block_list(
Description = block_list_description,
Name = block_list_name,
RoleArn = block_list_role_arn,
IndexId = index_id,
SourceS3Path = source_s3_path
)
print(block_list_response)
block_list_id = block_list_response["Id"]
print("Wait for Amazon Kendra to create the block list.")
while True:
# Get block list description
block_list_description = kendra.describe_query_suggestions_block_list(
Id = block_list_id,
IndexId = index_id
)
# If status is not CREATING, then quit
status = block_list_description["Status"]
print("Creating block list. Status: " + status)
if status != "CREATING":
break
time.sleep(60)
except ClientError as e:
print("%s" % e)
print("Program ends.")
차단 목록을 업데이트하려면
import boto3
from botocore.exceptions import ClientError
import pprint
import time
kendra = boto3.client("kendra")
print("Update a block list for query suggestions.")
# Provide the block list name you want to update
block_list_name = "new-block-list-name"
# Provide the block list description you want to update
block_list_description = "new-block-list-description"
# Provide the IAM role ARN required for query suggestions block lists
block_list_role_arn = "role-arn"
# Provide the block list ID
block_list_id = "block-list-id"
# Provide the index ID
index_id = "index-id"
s3_bucket_name = "bucket-name"
s3_key = "query-suggestions/new_block_list.txt"
source_s3_path = {
'Bucket': s3_bucket_name,
'Key': s3_key
}
try:
kendra.update_query_suggestions_block_list(
Id = block_list_id,
IndexId = index_id,
Description = block_list_description,
Name = block_list_name,
RoleArn = block_list_role_arn,
SourceS3Path = source_s3_path
)
print("Wait for Amazon Kendra to update the block list.")
while True:
# Get block list description
block_list_description = kendra.describe_query_suggestions_block_list(
Id = block_list_id,
IndexId = index_id
)
# If status is not UPDATING, then the update has finished
status = block_list_description["Status"]
print("Updating block list. Status: " + status)
if status != "UPDATING":
break
time.sleep(60)
except ClientError as e:
print("%s" % e)
print("Program ends.")
차단 목록을 삭제하려면
import boto3
from botocore.exceptions import ClientError
kendra = boto3.client("kendra")
print("Delete a block list for query suggestions.")
# provide the block list ID
query_suggestions_block_list_id = "query-suggestions-block-list-id"
# Provide the index ID
index_id = "index-id"
try:
kendra.delete_query_suggestions_block_list(
Id = query_suggestions_block_list_id,
IndexId = index_id
)
except ClientError as e:
print("%s" % e)
print("Program ends.")