Parámetros de búsqueda de texto
Los siguientes puntos de entrada de la API permiten buscar registros basándose en el texto que contienen:
GET /posts
GET /posts/stats
En cada uno de estos endpoints, dos parámetros trabajan juntos para especificar patrones de texto que determinan qué resultados serán devueltos:
keyword – una cadena que puede especificar una o más palabras clave.
simple_query – un interruptor para habilitar la sintaxis de búsqueda booleana en la cadena de palabras clave.
Comportamiento predeterminado del parámetro keyword
El parámetrokeyword
es una cadena que puede especificar una o más palabras clave. Su comportamiento predeterminado es recuperar registros que contengan cada una de las palabras clave dadas en cualquier orden. Por ejemplo, la siguiente solicitud recuperará publicaciones que contengan las palabras "cambio" y "climático" en cualquier lugar dentro de la publicación:
GET /posts?keyword=cambio+climático
Los resultados incluirían publicaciones que contengan cualquiera de las siguientes combinaciones de las palabras clave especificadas o formas alternativas de esas palabras:
¿Cómo se relaciona la frecuencia de tormentas severas con el cambio climático?
Las especies de aves responden al cambio en los fenómenos climáticos.
Es importante tener en cuenta que la sintaxis de la cadena de consulta en la solicitud anterior utiliza el carácter "+" como separador entre palabras. Alternativamente, se puede utilizar el carácter de espacio codificado en URL "%20" como separador, pero no se permite el uso de un espacio literal en las URLs.
Sensibilidad a mayúsculas y minúsculas, puntuación y formas gramaticales
Los términos utilizados con el parámetro keyword
no distinguen entre mayúsculas y minúsculas. Es decir, encontrarán coincidencias sin importar la capitalización.
Todas las formas de puntuación se tratan simplemente como separadores entre palabras y no tienen otra relevancia para la búsqueda.
Un diccionario interno intenta hacer coincidir un término que puede aparecer en múltiples formas gramaticales. Por ejemplo, el diccionario intenta coincidir las formas singular, plural y posesiva de un sustantivo con el mismo término. Para los verbos, las variaciones gramaticales de la palabra pueden incluir sus tiempos verbales y la forma de gerundio. Este diccionario funciona para términos comunes, pero no cubre completamente los términos menos frecuentes.
Cabe señalar que los siguientes ejemplos se resuelven en la misma serie de palabras clave:
impacto ambiental creciente
impactos ambientales, creciendo
Impacto ambiente. Crecidas
Impacta ambientalmente: crecimiento
Sintaxis de búsqueda booleana
En el ejemplo "keyword=cambio+climático" mencionado anteriormente, los resultados incluyen publicaciones con las palabras "cambio" y "climático" apareciendo en cualquier lugar y en cualquier orden. Podemos modificar este comportamiento predeterminado utilizando la sintaxis de búsqueda booleana para ser más precisos sobre las combinaciones de palabras clave que deseamos requerir. Esta función se habilita cuando el parámetro simple_query se asigna con el valor "true".
Las características específicas de la sintaxis de búsqueda booleana se ilustran con ejemplos a continuación. Un resumen rápido de estas características aparece bajo el encabezado del glosario de Operadores booleanos.
Es importante tener en cuenta que el parámetro simple_query modifica el comportamiento del parámetro keyword. Usar el parámetro simple_query sin el parámetro keyword no tendrá ningún efecto. Cuando no se desee utilizar la sintaxis de búsqueda booleana, se debe omitir el parámetro simple_query en lugar de establecerlo en "false" o cualquier otro valor. Si el parámetro simple_query está presente, asignarle un valor diferente de "true" puede producir resultados no deseados.
Sintaxis de búsqueda booleana: cadena de palabras clave entrecomillada
Una de las operaciones booleanas admitidas es especificar una cadena de términos que deben aparecer en el orden dado. Por ejemplo, podemos limitar la búsqueda a "cambio climático" con la siguiente consulta:
GET /posts?keyword="cambio+climático"&simple_query=true
Esta consulta no coincidiría con las siguientes publicaciones, ya que la secuencia de términos no está en el orden especificado o está interrumpida por uno o más términos intermedios:
Las especies de aves responden a los cambios en el clima.
Estamos presenciando un clima de cambio.
Sin embargo, coincidiría con las siguientes publicaciones porque los términos están en el orden correcto:
¿Cómo se relaciona la frecuencia de tormentas severas con el cambio climático?
¿La encuesta tomó en cuenta múltiples factores de cambio? Climas tropicales sufren mayores afectaciones.
Cabe destacar que las variaciones en la capitalización, las formas gramaticales y la puntuación son toleradas, y el orden de los términos es la única restricción impuesta por una cadena de palabras clave entrecomillada al utilizar la sintaxis de búsqueda booleana.
Sintaxis de búsqueda booleana: operador lógico O
El operador lógico O permite especificar múltiples criterios de manera que cualquiera de ellos pueda generar una coincidencia. El siguiente ejemplo coincidirá con cualquier publicación que contenga al menos una instancia de "cambio" o "climático" o cualquiera de sus formas gramaticales. El carácter de barra vertical "|" representa la operación lógica O y separa los términos cuando la sintaxis booleana está habilitada.
GET /posts?keyword=cambio|climático&simple_query=true
Sintaxis de búsqueda booleana: operador lógico Y
El operador lógico Y permite especificar múltiples criterios que deben cumplirse todos para generar una coincidencia. Por ejemplo, la siguiente solicitud recuperará publicaciones que contengan tanto la palabra "cambio" como "climático" en cualquier parte de la publicación. El carácter de suma representa la operación lógica Y, y separa los términos cuando la sintaxis booleana está habilitada.
GET /posts?keyword=cambio+climático&simple_query=true
Cabe señalar que esta solicitud se asemeja y, en teoría, debería tener el mismo resultado que la solicitud de comportamiento predeterminado donde el parámetro simple_query=true no está presente. En la práctica, tienen casi el mismo comportamiento, pero no completamente, debido a un problema conocido. A partir del 22 de noviembre de 2022, el parámetro simple_query=true incluye algunos metadatos en la búsqueda que se omiten cuando no está presente.
Sintaxis de búsqueda booleana: Paréntesis
Cuando varios operadores booleanos se combinan en una sola solicitud, los paréntesis permiten controlar explícitamente la precedencia de las operaciones. Para ilustrarlo, el orden de las operaciones en los siguientes casos podría producir resultados diferentes:
a Y ( b O c )
( a Y b ) O c
Por ejemplo, podemos requerir que la palabra "cambio" aparezca con la palabra "climático" o que la palabra "calentamiento" aparezca con la palabra "global" utilizando la siguiente consulta:
GET /posts?keyword=(cambio+climatico)|(calentamiento+global)&simple_query=true
Sintaxis de búsqueda booleana: Operador lógico NO
La operación lógica NO se puede utilizar para excluir ciertos resultados. Por ejemplo, la siguiente solicitud recuperará publicaciones que contengan la palabra "Florida" pero no si también está presente la palabra "huracán". Cabe señalar que el carácter "-" representa el operador lógico NO en este caso. Se combina con el operador lógico Y, lo que se puede interpretar como "Florida" Y NO "huracán".
GET /posts?keyword=florida+-huracán&simple_query=true
También es posible aplicar el operador lógico NO a una expresión entre paréntesis completa. El siguiente ejemplo se puede interpretar como "Florida" Y TAMPOCO "huracán" NI "tormenta".
GET /posts?keyword=florida+-(huracán|tormenta)&simple_query=true
Cabe destacar que el operador lógico NO opera sobre la única expresión que lo sigue inmediatamente. En este sentido, es un operador unitario de prefijo. En contraste, los operadores lógicos O e Y son operadores binarios infijos que operan sobre las dos expresiones entre las que se encuentran
Last updated