Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Parámetros de búsqueda de texto completo de Neptune
Amazon Neptune utiliza los siguientes parámetros para especificar las consultas de OpenSearch de texto completo tanto en Gremlin como en SPARQL:
-
queryType
: (obligatorio) el tipo de consulta de OpenSearch. (Para obtener una lista de los tipos de consultas, consulte la documentación de OpenSearch). Neptune admite los siguientes tipos de consultas de OpenSearch: -
simple_query_string
: devuelve los documentos en función de la cadena de consulta proporcionada, mediante un analizador con una sintaxis de Lucene limitada pero tolerante a errores. Este es el tipo de consulta predeterminado. Esta consulta utiliza una sintaxis simple para analizar y dividir la cadena de consulta proporcionada en términos basados en operadores especiales. A continuación, la consulta analiza cada término de forma independiente antes de devolver documentos coincidentes.
Aunque su sintaxis está más limitada que la consulta
query_string
, la consultasimple_query_string
no devuelve errores para la sintaxis no válida. En su lugar, no tiene en cuenta cualquier parte no válida de la cadena de consulta. match
: la consulta match
es la consulta estándar para realizar una búsqueda de texto completo, e incluye opciones de coincidencia parcial.prefix
: devuelve los documentos que contienen un prefijo específico en un campo proporcionado. -
fuzzy
: devuelve documentos que contienen términos similares al término de búsqueda, medidos por medio de una distancia de edición de Levenshtein. Una distancia de edición es el número de cambios de un carácter necesarios para convertir un término en otro. Estos cambios pueden incluir:
Cambio de un carácter (box a fox).
Eliminación de un carácter (black a lack).
Inserción de un carácter (sic a sick).
Transposición de dos caracteres adyacentes (act a cat).
Para encontrar términos similares, la consulta aproximada crea un conjunto de todas las variaciones y expansiones posibles del término de búsqueda dentro de una distancia de edición especificada y, a continuación, devuelve coincidencias exactas para cada una de esas variantes.
term
: devuelve documentos que contienen una coincidencia exacta de un término especificado en uno de los campos especificados. Puede utilizar la consulta
term
para buscar documentos basados en un valor preciso, como un precio, el ID de un producto o un nombre de usuario.aviso
Evite usar el término consulta para los campos de texto. De forma predeterminada, OpenSearch cambia los valores de los campos de texto como parte de su análisis, lo que puede dificultar la búsqueda de coincidencias exactas para los valores de los campos de texto.
Para buscar valores de campo de texto, utilice la consulta de coincidencia en su lugar.
-
query_string
: devuelve los documentos en función de la cadena de consulta proporcionada, mediante un analizador con una sintaxis estricta (sintaxis de Lucene). Esta consulta utiliza una sintaxis para analizar y dividir la cadena de consulta proporcionada basadas en operadores, como Y y NO. A continuación, la consulta analiza cada texto dividido de forma independiente antes de devolver documentos coincidentes.
Puede utilizar la consulta
query_string
para crear una búsqueda compleja que incluya caracteres comodín, búsquedas en varios campos y mucho más. Aunque versátil, la consulta es estricta y devuelve un error si la cadena de consulta incluye cualquier sintaxis no válida.aviso
Dado que devuelve un error para cualquier sintaxis no válida, no recomendamos usar la consulta
query_string
para los cuadros de búsqueda.Si no tiene que admitir una sintaxis de consulta, considere el uso de la consulta
match
. Si necesita las características de una sintaxis de consulta, utilice la consultasimple_query_string
, que es menos estricta.
-
-
field
: el campo de OpenSearch en el que se va a ejecutar la búsqueda. Solo se puede omitir siqueryType
lo permite (como hacensimple_query_string
yquery_string
), en cuyo caso la búsqueda se efectúa en todos los campos. En Gremlin, está implícito.Se pueden especificar varios campos si la consulta lo permite, como hacen
simple_query_string
yquery_string
. query
: (obligatorio) la consulta que se va a ejecutar en OpenSearch. El contenido de este campo puede variar según el valor de queryType. Los distintos valores de queryType aceptan diferentes sintaxis, como, por ejemplo, haceRegexp
. En Gremlin,query
está implícito.-
maxResults
: el número máximo de resultados que se deben devolver. El valor predeterminado es la configuraciónindex.max_result_window
de OpenSearch, que de manera predeterminada es 10 000. El parámetromaxResults
puede especificar cualquier número menor que eso.importante
Si establece
maxResults
en un valor mayor que el valor deindex.max_result_window
de OpenSearch e intenta recuperar más deindex.max_result_window
resultados, OpenSearch produce un errorResult window is too large
. Sin embargo, Neptune maneja esto con fluidez sin propagar el error. Tenga esto en cuenta si trata de obtener más resultados deindex.max_result_window
. minScore
: la puntuación mínima que debe tener un resultado de búsqueda para ser devuelto. Consulte OpenSearch relevance documentationpara obtener una explicación de la puntuación de los resultados. batchSize
: Neptune siempre obtiene los datos por lotes (el tamaño de lote predeterminado es 100). Puede utilizar este parámetro para ajustar el rendimiento. El tamaño del lote no puede superar la configuración deindex.max_result_window
de OpenSearch, que de manera predeterminada es 10 000.-
sortBy
: un parámetro opcional que permite ordenar los resultados que devuelve OpenSearch según una de las siguientes opciones:-
Un campo de cadena concreto del documento:
Por ejemplo, en una consulta SPARQL, puede especificar:
neptune-fts:config neptune-fts:sortBy foaf:name .
En una consulta Gremlin similar, puede especificar:
.withSideEffect('Neptune#fts.sortBy', 'name')
-
Un campo concreto que no es una cadena (
long
,double
, etc.) del documento:Tenga en cuenta que, al ordenar por un campo que no sea una cadena, debe agregar
.value
al nombre del campo para diferenciarlo de un campo de cadena.Por ejemplo, en una consulta SPARQL, puede especificar:
neptune-fts:config neptune-fts:sortBy foaf:name.value .
En una consulta Gremlin similar, puede especificar:
.withSideEffect('Neptune#fts.sortBy', 'name.value')
-
score
: ordena por puntuación de coincidencia (valor predeterminado).Si el parámetro
sortOrder
está presente perosortBy
no está presente, los resultados se ordenan porscore
en el orden especificado porsortOrder
. -
id
: ordena por identificador, es decir, el URI del sujeto de SPARQL o el identificador de vértice o borde de Gremlin.Por ejemplo, en una consulta SPARQL, puede especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_id' .
En una consulta Gremlin similar, puede especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_id')
-
label
: ordena por etiqueta.Por ejemplo, en una consulta SPARQL, puede especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.entity_type' .
En una consulta Gremlin similar, puede especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.entity_type')
-
doc_type
: ordena por tipo de documento (es decir, SPARQL o Gremlin).Por ejemplo, en una consulta SPARQL, puede especificar:
neptune-fts:config neptune-fts:sortBy 'Neptune#fts.document_type' .
En una consulta Gremlin similar, puede especificar:
.withSideEffect('Neptune#fts.sortBy', 'Neptune#fts.document_type')
De forma predeterminada, los resultados de OpenSearch no se ordenan y su orden no es determinista, lo que significa que la misma consulta puede devolver elementos con un orden diferente cada vez que se ejecuta. Por esta razón, si el conjunto de resultados es mayor que
max_result_window
, se podría devolver un subconjunto bastante diferente de los resultados totales cada vez que se ejecuta una consulta. Al ordenar, sin embargo, puede hacer que los resultados de diferentes ejecuciones sean más equivalentes de forma directa.Si ningún parámetro
sortOrder
acompaña asortBy
, se utiliza el orden descendente (DESC
) de mayor a menor. -
-
sortOrder
: un parámetro opcional que permite especificar si los resultados de OpenSearch se ordenan de menor a mayor o de mayor a menor (opción predeterminada):ASC
: orden ascendente, de menor a mayor.-
DESC
: orden descendente, de mayor a menor.Este es el valor predeterminado, que se utiliza cuando el parámetro
sortBy
está presente pero no se especificasortOrder
.
Si no están presentes
sortBy
nisortOrder
, los resultados de OpenSearch no se ordenan de forma predeterminada.