As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando o Pit com o Amazon OpenSearch Serverless
Agora você pode usar o plug-in PIT (Point in Time) para executar consultas diferentes em um conjunto de dados fixo no tempo. Normalmente, se você executar uma consulta em um índice várias vezes, a mesma consulta pode retornar um resultado diferente devido aos dados serem continuamente indexados, atualizados e excluídos. Se precisar executar uma consulta nos mesmos dados, você pode preservar o estado desses dados criando umPIT. Para saber mais sobre Point in Time, consulte Point in Time
O Amazon OpenSearch Serverless oferece suporte ao uso do seguinte: PIT APIs
-
POST /<target_indexes>/_search/point_in_time
-
GET /_search/point_in_time/_all
-
DELETE /_search/point_in_time/_all
-
DELETE /_search/point_in_time
Todos APIs são gerenciados por meio do controle aoss:ReadDocument
de acesso aos dados. Para obter mais informações sobre suporteAPIs, consulte Operações suportadas em plug-ins no Amazon OpenSearch Serverless.
OpenSearch oferece vários métodos de paginação que podem ser acoplados ao Point in Time para realizar uma paginação profunda dos resultados da pesquisa. Esses recursos incluem a capacidade de especificar os size
parâmetros from
e de sua pesquisa e o search_after
parâmetro para paginação profunda dos resultados da pesquisa. Para saber mais sobre paginação, consulte Paginar resultados.
Point in Time (PIT) com search_after
é o método de paginação recomendado no Amazon OpenSearch Serverless, especialmente para paginação profunda. Ele ignora as limitações de todos os outros métodos porque opera em um conjunto de dados congelado no tempo, não está vinculado a uma consulta e oferece suporte à paginação consistente no futuro.
nota
O recurso de PIT fatiamento e os segmentos PIT cat não API são suportados para uso no Amazon OpenSearch Serverless.
Criar uma PIT
Crie um PIT usando o exemplo a seguir:
POST /my-index-1/_search/point_in_time?keep_alive=100m { "pit_id": "o123QQEEeEeeeE5eEEeeEEEeEEEeEeEEEE45eee3E3EeaEEeeEE1EEEeEeeEEeEeeEEeEEEmEEE2EEE6eEe1eEEeEeeAAAAAAAAAAAIWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA", "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "creation_time": 1658146050064 }
Seleção do parâmetro para paginação com PIT
Para uma paginação efetiva, um sort
parâmetro exclusivo deve ser selecionado. Sem um sort
parâmetro exclusivo, os documentos podem ser ignorados durante a paginação. Você deve selecionar um campo de desempate ou um conjunto de campos de desempate, que sejam aleatórios o suficiente para garantir que dois documentos não tenham a mesma ordem. sort
OpenSearch desencoraja o uso de _id
como desempate, pois exige fielddata
um custo muito alto. Se nenhum critério de desempate estiver disponível, é recomendável indexar documentos com um campo inteiro aleatório adicional, que pode ser usado posteriormente como desempate durante a pesquisa.
Pesquise usando o id de PIT contexto e o search_after
parâmetro para recuperar a próxima página de resultados, conforme mostrado no exemplo a seguir:
Paginação com PIT
Pesquise usando o id de PIT contexto e o search_after
parâmetro para recuperar a próxima página de resultados, conforme mostrado no exemplo a seguir:
GET /_search { "size": 10000, "query": { "match" : { "user.id" : "elkbee" } }, "pit": { "id": "46ToAwMDaWR5BXV1aWQyKwZub2RlXzMAAAAAAAAAACoBYwADaWR4BXV1aWQxAgZub2RlXzEAAAAAAAAAAAEBYQADaWR5BXV1aWQyKgZub2RlXzIAAAAAAAAAAAwBYgACBXV1aWQyAAAFdXVpZDEAAQltYXRjaF9hbGw_gAAAAA==", "keep_alive": "100m" }, "sort": [ {"@timestamp": {"order": "asc"}} ], "search_after": [ "2021-05-20T05:30:04.832Z" ] }
Estender PIT usando a solicitação de pesquisa
Para estender uma pesquisa pontual, você precisará fornecer um keep_alive
parâmetro no "pit"
objeto durante a pesquisa. Veja o exemplo a seguir:
GET /_search { "size": 10000, "query": { "match" : { "user.id" : "elkbee" } }, "pit": { "id": "46ToAwMDaWR5BXV1aWQyKwZub2RlXzMAAAAAAAAAACoBYwADaWR4BXV1aWQxAgZub2RlXzEAAAAAAAAAAAEBYQADaWR5BXV1aWQyKgZub2RlXzIAAAAAAAAAAAwBYgACBXV1aWQyAAAFdXVpZDEAAQltYXRjaF9hbGw_gAAAAA==", "keep_alive": "100m" }, "sort": [ {"@timestamp": {"order": "asc"}} ], "search_after": [ "2021-05-20T05:30:04.832Z" ] }
Listar tudo PITs
Para listar tudoPITs, veja o exemplo a seguir:
GET /_search/point_in_time/_all { "pits": [{ "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFnNOWU43ckt3U3IyaFVpbGE1UWEtMncAFjFyeXBsRGJmVFM2RTB6eVg1aVVqQncAAAAAAAAAAAEWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA", "creation_time": 1658146048666, "keep_alive": 6000000 }, { "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFnNOWU43ckt3U3IyaFVpbGE1UWEtMncAFjFyeXBsRGJmVFM2RTB6eVg1aVVqQncAAAAAAAAAAAIWcDVrM3ZIX0pRNS1XejE5YXRPRFhzUQEWc05ZTjdyS3dTcjJoVWlsYTVRYS0ydwAA", "creation_time": 1658146050064, "keep_alive": 6000000 } ] }
Excluir um PIT
Para excluir umPIT, veja o exemplo a seguir
DELETE /_search/point_in_time { "pit_id": [ "o463QQEPbXktaW5kZXgtMDAwMDAxFkhGN09fMVlPUkVPLXh6MUExZ1hpaEEAFjBGbmVEZHdGU1EtaFhhUFc4ZkR5cWcAAAAAAAAAAAEWaXBPNVJtZEhTZDZXTWFFR05waXdWZwEWSEY3T18xWU9SRU8teHoxQTFnWGloQQAA", "o463QQEPbXktaW5kZXgtMDAwMDAxFkhGN09fMVlPUkVPLXh6MUExZ1hpaEEAFjBGbmVEZHdGU1EtaFhhUFc4ZkR5cWcAAAAAAAAAAAIWaXBPNVJtZEhTZDZXTWFFR05waXdWZwEWSEY3T18xWU9SRU8teHoxQTFnWGloQQAA" ] } { "pits": [ { "successful": true, "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFkhGN09fMVlPUkVPLXh6MUExZ1hpaEEAFjBGbmVEZHdGU1EtaFhhUFc4ZkR5cWcAAAAAAAAAAAEWaXBPNVJtZEhTZDZXTWFFR05waXdWZwEWSEY3T18xWU9SRU8teHoxQTFnWGloQQAA" }, { "successful": false, "pit_id": "o463QQEPbXktaW5kZXgtMDAwMDAxFkhGN09fMVlPUkVPLXh6MUExZ1hpaEEAFjBGbmVEZHdGU1EtaFhhUFc4ZkR5cWcAAAAAAAAAAAIWaXBPNVJtZEhTZDZXTWFFR05waXdWZwEWSEY3T18xWU9SRU8teHoxQTFnWGloQQAA" } ] }