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á.
Parâmetros de pesquisa de texto completo do Neptune
O Amazon Neptune usa os seguintes parâmetros para especificar as consultas de texto completo do OpenSearch no Gremlin e no SPARQL:
-
queryType
: (obrigatório) o tipo de consulta do OpenSearch. (Para obter uma lista dos tipos de consulta, consulte a documentação do OpenSearch). O Neptune é compatível com os seguintes tipos de consulta do OpenSearch: -
simple_query_string
: exibe documentos baseados em uma string de consulta fornecida, usando um analisador com uma sintaxe Lucene limitada, mas tolerante a falhas. Este é o tipo de consulta padrão. Esta consulta usa uma sintaxe simples para analisar e dividir a string de consulta fornecida em termos baseados em operadores especiais. A consulta analisa todos os termos de forma independente antes de retornar os documentos correspondentes.
Embora a sintaxe seja mais limitada que a consulta
query_string
, a consultasimple_query_string
não retorna erros para sintaxe inválida. Em vez disso, ela ignora as partes inválidas da string de consulta. match
: a consulta match
é a consulta padrão para realizar uma pesquisa de texto completo, incluindo opções para correspondência difusa.prefix
: exibe documentos que contêm um prefixo específico em um campo fornecido. -
fuzzy
: exibe documentos que contêm termos semelhantes ao termo de pesquisa, conforme medido por uma distância de edição de Levenshtein. Uma distância de edição é o número de alterações de um caractere necessárias para transformar um termo em outro. Essas alterações podem incluir:
Mudar um caractere (caixa para faixa).
Remover um caractere (preto para reto).
Inserir um caractere (acender para ascender).
Transposição de dois caracteres adjacentes (bolsa para bolas).
Para encontrar termos semelhantes, a consulta difusa cria um conjunto de todas as possíveis variações e expansões do termo de pesquisa dentro de uma distância de edição especificada e retorna correspondências exatas para cada uma dessas variantes.
term
: exibe documentos que contêm uma correspondência exata de um termo definido em um dos campos especificados. Você pode usar a consulta
term
para encontrar documentos baseados em um valor preciso, como preço, ID de produto ou nome de usuário.Atenção
Evite usar a consulta de termo para campos de texto. Por padrão, o OpenSearch altera os valores de campos de texto como parte da análise, o que pode dificultar a localização de correspondências exatas para valores de campos de texto.
Para pesquisar valores de campo de texto, use a consulta de correspondência.
-
query_string
: exibe documentos baseados em uma string de consulta fornecida, usando um analisador com uma sintaxe estrita (sintaxe Lucene). Esta consulta usa uma sintaxe para analisar e dividir a string de consulta fornecida com base em operadores, como E ou NÃO. A consulta analisa cada texto dividido de forma independente antes de retornar os documentos correspondentes.
Você pode usar a consulta
query_string
para criar uma pesquisa complexa que inclui caracteres curinga, pesquisas em vários campos, entre outros. Embora seja versátil, a consulta é restrita e retorna um erro se a string da consulta incluir uma sintaxe inválida.Atenção
Como ela retorna um erro para uma sintaxe inválida, não recomendamos o uso da consulta
query_string
para caixas de pesquisa.Se você não precisar oferecer suporte para a sintaxe de consulta, considere usar a consulta
match
. Se você precisar dos recursos de uma sintaxe de consulta, use a consultasimple_query_string
, que é menos estrita.
-
-
field
: o campo no OpenSearch no qual executar a pesquisa. Isto pode ser omitido somente se oqueryType
permitir (assim como osimple_query_string
e oquery_string
), nesse caso, a pesquisa é realizada em todos os campos. No Gremlin, está implícito.É possível especificar múltiplos campos se a consulta permitir, assim como
simple_query_string
equery_string
. query
: (obrigatório) a consulta a ser executada no OpenSearch. O conteúdo deste campo pode variar de acordo com o queryType. Diferentes queryTypes aceitam sintaxes diferentes, como, por exemplo, oRegexp
. No Gremlin, oquery
está implícito.-
maxResults
: o número máximo de resultados a serem exibidos. O padrão é a configuraçãoindex.max_result_window
do OpenSearch, que é padronizada como dez mil. O parâmetromaxResults
pode especificar qualquer número inferior a esse.Importante
Se você definir
maxResults
como um valor maior que o valorindex.max_result_window
do OpenSearch e tentar recuperar mais de resultadosindex.max_result_window
, o OpenSearch exibirá um erroResult window is too large
. No entanto, o Neptune processa o erro corretamente sem propagá-lo. Lembre-se disso se estiver tentando buscar mais do queindex.max_result_window
resultados. minScore
: a pontuação mínima que um resultado de pesquisa pode ter para ser exibido. Consulte a documentação de relevância do OpenSearchpara obter uma explicação da pontuação do resultado. batchSize
: o Neptune sempre obtém dados em lotes (o tamanho de lote padrão é cem). É possível usar esse parâmetro para ajustar o desempenho. O tamanho do lote não pode exceder a configuraçãoindex.max_result_window
do OpenSearch, que é predefinida como dez mil.-
sortBy
: um parâmetro opcional que permite classificar os resultados exibidos pelo OpenSearch por um dos seguintes itens:-
Um campo de string específico no documento –
Por exemplo, em uma consulta SPARQL, é possível especificar:
neptune-fts:config neptune-fts:sortBy foaf:name .
Em uma consulta Gremlin, é possível especificar:
.withSideEffect('Neptune#fts.sortBy', 'name')
-
Um campo que não seja de string específico (
long
,double
etc.) no documento –Observe que, ao classificar em um campo que não seja de string, você precisa acrescentar
.value
ao nome do campo para diferenciá-lo de um campo de string.Por exemplo, em uma consulta SPARQL, é possível especificar:
neptune-fts:config neptune-fts:sortBy foaf:name.value .
Em uma consulta Gremlin, é possível especificar:
.withSideEffect('Neptune#fts.sortBy', 'name.value')
-
score
: classificar por pontuação de correspondência (padrão).Se o parâmetro
sortOrder
estiver presente, massortBy
não estiver presente, os resultados serão classificados porscore
na ordem especificada porsortOrder
. -
id
: classificar por ID, o que significa o URI de assunto do SPARQL ou o ID de borda ou vértice do Gremlin.Por exemplo, em uma consulta SPARQL, é possível especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_id' .
Em uma consulta Gremlin, é possível especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_id')
-
label
: ordenar por rótulo.Por exemplo, em uma consulta SPARQL, é possível especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_type' .
Em uma consulta Gremlin, é possível especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_type')
-
doc_type
: classificar por tipo de documento (ou seja, SPARQL ou Gremlin).Por exemplo, em uma consulta SPARQL, é possível especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.document_type' .
Em uma consulta Gremlin, é possível especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.document_type')
Por padrão, os resultados do OpenSearch não são classificados e a ordem não é determinística, o que significa que a mesma consulta pode exibir itens em uma ordem diferente a cada execução. Por esse motivo, se o resultado definido for maior que
max_result_window
, um subconjunto diferente dos resultados totais pode ser retornado a cada execução. No entanto, ao classificar você pode tornar os resultados de execuções diferentes mais comparáveis diretamente.Se nenhum parâmetro
sortOrder
acompanhar osortBy
, será usada a ordem decrescente (DESC
) do maior para o menor. -
-
sortOrder
: um parâmetro opcional que permite especificar se os resultados do OpenSearch são classificados do menor para o maior ou do maior para o menor (padrão):ASC
: ordem crescente, do menor para o maior.-
DESC
: ordem decrescente, do maior para o menor.Este é o valor padrão usado quando o parâmetro
sortBy
for apresentado, mas nenhumsortOrder
tiver sido especificado.
Se nem
sortBy
nemsortOrder
estiverem presentes, os resultados do OpenSearch não serão classificados por padrão.