浏览索引 - Amazon Kendra

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

浏览索引

注意

功能支持因索引类型和使用的搜索 API 而异。要查看您使用的索引类型和搜索 API 是否支持此功能,请参阅索引类型

您无需键入搜索查询即可按其属性或分面浏览文档。 Amazon Kendra 浏览索引可以帮助您的用户通过自由浏览索引来发现文档,而无需考虑特定的查询。这还可以帮助您的用户广泛浏览索引,将其作为搜索的起点。

浏览索引只能用于按文档属性或具有排序类型的分面进行搜索。不能使用“浏览索引”搜索整个索引。如果缺少查询文本,则 Amazon Kendra 要求提供文档属性筛选器或分面以及排序类型。

要允许使用查询 API 浏览索引,必须包含AttributeFilterFacet 和。SortingConfiguration要允许在控制台中浏览索引,请在导航菜单的索引下选择您的索引,然后选择搜索索引的选项。在搜索框中,按两次 Enter 键。选择下拉列表筛选搜索结果以选择筛选条件,然后选择下拉列表排序以选择排序类型。

以下是按文档创建日期降序浏览西班牙语文档索引的示例。

CLI
aws kendra query \ --index-id "index-id" \ --attribute-filter '{ "EqualsTo":{ "Key": "_language_code", "Value": { "StringValue": "es" } } }' \ --sorting-configuration '{ "DocumentAttributeKey": "_created_at", "SortOrder": "DESC" }'
Python
import boto3 kendra = boto3.client("kendra") # Must include the index ID, the attribute filter, and sorting configuration response = kendra.query( IndexId = "index-id", AttributeFilter = { "EqualsTo": { "Key": "_language_code", "Value": { "StringValue": "es" } } }, SortingConfiguration = { "DocumentAttributeKey": "_created_at", "SortOrder": "DESC"}) print("\nSearch results|Resultados de la búsqueda: \n") for query_result in response["ResultItems"]: print("-------------------") print("Type: " + str(query_result["Type"])) if query_result["Type"]=="ANSWER" or query_result["Type"]=="QUESTION_ANSWER": answer_text = query_result["DocumentExcerpt"]["Text"] print(answer_text) if query_result["Type"]=="DOCUMENT": if "DocumentTitle" in query_result: document_title = query_result["DocumentTitle"]["Text"] print("Title: " + document_title) document_text = query_result["DocumentExcerpt"]["Text"] print(document_text) print("------------------\n\n")
Java
package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.QueryRequest; import software.amazon.awssdk.services.kendra.model.QueryResult; import software.amazon.awssdk.services.kendra.model.QueryResultItem; public class SearchIndexExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); QueryRequest queryRequest = QueryRequest.builder() .withIndexId("index-id") .withAttributeFilter(AttributeFilter.builder() .withEqualsTo(DocumentAttribute.builder() .withKey("_language_code") .withValue(DocumentAttributeValue.builder() .withStringValue("es") .build()) .build()) .build()) .withSortingConfiguration(SortingConfiguration.builder() .withDocumentAttributeKey("_created_at") .withSortOrder("DESC") .build()) .build()); QueryResult queryResult = kendra.query(queryRequest); for (QueryResultItem item : queryResult.getResultItems()) { System.out.println("----------------------"); System.out.println(String.format("Type: %s", item.getType())); switch (item.getType()) { case QueryResultType.QUESTION_ANSWER: case QueryResultType.ANSWER: String answerText = item.getDocumentExcerpt().getText(); System.out.println(answerText); break; case QueryResultType.DOCUMENT: String documentTitle = item.getDocumentTitle().getText(); System.out.println(String.format("Title: %s", documentTitle)); String documentExcerpt = item.getDocumentExcerpt().getText(); System.out.println(String.format("Excerpt: %s", documentExcerpt)); break; default: System.out.println(String.format("Unknown query result type: %s", item.getType())); } System.out.println("-----------------------\n"); } } }