Buscar en los datos¶
Búsqueda de registros |
Consulta |
Ejemplo (basado en el conjunto de datos ods-api-monitoring) |
---|---|---|
que contengan un valor |
valor |
Devuelve todos los registros que contienen la cadena explore. |
que contengan un valor en un campo específico |
id_campo:valor |
Devuelve todos los registros que contienen la cadena explore en la columna denominada action. |
que contengan varios valores |
valor1 AND valor2 |
Devuelve todos los registros que contienen tanto explore como search. |
que contengan como mínimo uno de los valores |
valor1 OR valor2 |
Devuelve todos los registros que contienen o bien explore o bien search. |
que no contengan un valor |
NOT valor |
Devuelve todos los registros que no contienen la cadena anonymous. |
que contengan un valor exacto en un campo |
#exact(id_campo,"valor") |
Devuelve todos los registros que contienen la cadena exacta anonymous en la columna denominada user_id. |
si un campo está vacío |
#null(id_campo) |
Devuelve todos los registros que no tienen ningún valor en la columna denominada referer |
Devuelve todos los registros que contienen un valor que empieza por la cadena especificada, en el campo especificado |
#startswith(id_field,"string") |
Devuelve todos los registros que contienen un valor que empieza por |
cuando un campo de fecha es anterior a un valor |
id_campo_fecha<=AAAA/MM/DD |
Devuelve todos los registros con una marca de tiempo anterior o igual a septiembre de 2016. |
cuando un campo de fecha es la fecha actual menos un período |
id_campo_fecha>#now(days=-valor) |
Devuelve todos los registros con una marca de tiempo igual al día actual menos 7 días. |
que contengan un campo geográfico situado en una área específica |
de un área circular: #distance("latitud,longitud",distancia) de un polígono o área cuadrada: #polygon(geo_field,"(lat1,lon1),(lat2,lon2),(lat3,lon3)") |
Devuelve todos los registros situados a 1 km del centro de París.
Devuelve todos los registros situados en el polígono. |
Lenguaje de consulta y filtros geográficos¶
Lenguaje de consulta¶
El lenguaje de consulta de Opendatasoft permite expresar condiciones booleanas complejas a modo de contexto de filtro.
Búsqueda de texto completo¶
El lenguaje de consulta acepta consultas de texto completo.
Si una palabra o estructura determinada está delimitada por comillas dobles, solo se devuelven las coincidencias exactas (sin distinción de mayúsculas/minúsculas ni acentos).
film
devuelve los resultados que contienen film, films, filmography..."film"
solo devuelve los que contienen exactamente film.
Expresiones booleanas¶
El lenguaje de consulta admite los operadores booleanos AND
, OR
y NOT
.
Se pueden usar paréntesis para agrupar expresiones y alterar el modelo de prioridad predeterminado:
NOT
AND
OR
Ejemplos
film OR trees
(film OR trees) AND paris
Consultas de campos¶
Una de las funciones primordiales del lenguaje de consulta es permitir los filtros por campos. Puede usar los nombres de campo como prefijo de las consultas para filtrar los resultados en función del valor de un campo específico.
En el caso de la búsqueda de conjuntos de datos en el catálogo, la lista de campos disponibles se corresponde exactamente con los metadatos disponibles. De forma predeterminada:
Nombre de campo |
Descripción |
---|---|
Publicador |
Publicador del conjunto de datos |
Título |
Título del conjunto de datos |
Descripción |
Descripción del conjunto de datos |
Licencia |
Licencia del conjunto de datos |
records_count | Número de registros del conjunto de datos |
modified | Fecha de la última modificación del conjunto de datos |
Idioma |
Idioma del conjunto de datos (código ISO) |
Tema |
Tema del conjunto de datos |
keyword | Una palabra clave que describe el conjunto de datos |
references | Referencias del conjunto de datos |
El administrador del dominio puede definir una plantilla de metadatos más rica y así dar acceso a un conjunto de campos de filtro más rico.
En el caso de la búsqueda de registros en un conjunto de datos, la lista de campos disponibles depende del esquema del conjunto de datos. Para capturar la lista de campos disponibles para un conjunto de datos determinado, puede usar las API de consulta o búsqueda de conjunto de datos.
Se pueden emplear varios campos de operadores entre el nombre de campo y la consulta:
:
,=
,==
: Devuelven los resultados cuyo campo coincide exactamente con el valor especificado (siempre que los campos sean de tipo texto o numérico).>
,<
,>=
,<=
: Devuelven los resultados cuyos valores de campo son superiores, inferiores, superiores o iguales, o inferiores o iguales que el valor especificado (siempre que los campos sean de tipo fecha o numérico).[start_date TO end_date]
: Consulta los registros cuya fecha se encuentra entrestart_date
yend_date
.
Las fechas se pueden especificar en diversos formatos: simple (YYYY[[/mm]/dd]
) o ISO 8601 (YYYY-mm-DDTHH:MM:SS
).
Ejemplos:
film_date >= 2002
film_date >= 2013/02/11
film_date: [1950 TO 2000]
film_box_office > 10000 AND film_date < 1965
Funciones del lenguaje de consulta¶
Se pueden usar funciones avanzadas en el lenguaje de consulta. Debe anteponerse como prefijo a los nombres de función un signo #
.
Nombre de función |
Descripción |
---|---|
now | Devuelve la fecha actual. Se puede invocar esta función como un valor de consulta para un campo. Si se invoca sin argumentos, se evaluará como la fecha y hora actual: |
null | Se puede invocar esta función especificando un nombre de campo como parámetro. Devuelve las coincidencias para las cuales no se ha definido ningún valor para el campo especificado. Por ejemplo |
exact | Esta función permite buscar registros con un campo que coincida exactamente con un valor determinado. Por ejemplo, |
attr | Esta función permite buscar registros con un campo que coincida exactamente con un valor en los atributos SAML del usuario que efectúa la consulta. Por ejemplo, |
Parámetros disponibles para la función ``#now``:
years, months, weeks, days, hours, minutes, seconds, microseconds: Estos parámetros añaden tiempo a la fecha actual.
Por ejemplo,
#now(years=-1, hours=-1)
devuelve la fecha actual menos un año y una hora.year, month, day, hour, minute, second, microsecond: También se pueden utilizar para especificar una fecha absoluta.
Por ejemplo,
#now(year=2001)
devuelve la hora, el día y el mes actuales para el año 2001.weekday: Especifica un día de la semana. Este parámetro acepta o bien un entero entre 0 y 6 (donde 0 es lunes y 6 es domingo), o bien las 2 primeras letras del día (en inglés) seguidas del cardinal de la primera semana en que se debe iniciar la consulta.
#now(weeks=-2, weekday=1)
devuelve el martes anterior al último.#now(weekday=MO(2))
devuelve el lunes posterior al siguiente.
Filtros geográficos¶
Las búsquedas de registros aceptan parámetros de filtros geográficos para filtrar los registros que se encuentran en un área geográfica determinada.
Se pueden emplear los parámetros siguientes.
Nombre de parámetro |
Descripción |
---|---|
geofilter.distance | Limita el conjunto de resultados a un área geográfica definida por un círculo (coordenadas del centro del círculo expresadas en WGS84 y distancia expresada en metros): latitud,longitud,distancia: Nota Este parámetro de consulta equivale a la función |
geofilter.polygon | Limita el conjunto de resultados a un área geográfica definida por un polígono (coordenadas de los puntos expresadas en WGS84 como en (lat1,lon1),(lat2,lon2),(lat3,lon3): |