Usando o Pit com o Amazon OpenSearch Serverless - OpenSearch Serviço Amazon

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" } ] }