Projet

Général

Profil

Development #43224

opendatasoft vs :

Ajouté par Frédéric Péters il y a presque 4 ans. Mis à jour il y a 9 mois.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
22 mai 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Les : semblent avoir une signification particulière, ex une recherche /?q=2019-08-30T12:00:00+00:00 donne

  "error": "The query is invalid : Field 00 doesn't exist" 

Demandes liées

Lié à Passerelle - Bug #43235: opendatasoft: faire la recherche sur le terme précis.Fermé22 mai 2020

Actions

Historique

#1

Mis à jour par Nicolas Roche il y a presque 4 ans

  • Assigné à mis à Nicolas Roche

Oui, les ':' permettent de spécifier un champ et sa valeur.
Par exemple, c'est comme ça que l'on recherche sur un identifiant : (cf https://dev.entrouvert.org/issues/27723#note-42)

query = 'recordid:%s' % id
params = {'q': query, ...}

Et donc, je réalise qu'il faut protéger ces caractères : https://help.opendatasoft.com/apis/ods-search-v1/#query-language

Multiple operator fields can be used between the field name and the query:
  • :, -, ==: return results whose field exactly matches the given value (granted the fields are of text or numeric type)
  • >, <, >=, <=: return results whose field values are larger, smaller, larger or equal, smaller or equal to the given value (granted the field is of date or numeric type)
  • [start_date TO end_date]: query records whose date is between start_date and end_date

Date formats can be specified in different formats: simple (YYYY[[/mm]/dd]) or ISO 8601 (YYYY-mm-DDTHH:MM:SS)

Je serais tenté de supprimer ces caractères dans la requête (q) passé au connecteur.
Est-ce que vous pourriez me conseiller sur une façon de procéder ?

#2

Mis à jour par Frédéric Péters il y a presque 4 ans

Il faut remonter à l'intention initiale, éventuellement faire un ticket pour demander, là il me semble que le souhait pourrait bien être de faire la recherche sur le terme précis.

→ If a given word or compounds is surrounded with double quotes, only exact matches are returned (modulo an accent and case insensitive match).

sauf que ça foire pareil, je te laisse chercher / te renseigner / trouver comment quoter les trucs pour opendatasoft.

#3

Mis à jour par Nicolas Roche il y a presque 4 ans

(dans l'alternative de faire la recherche sur le terme précis)

La phrase que tu pointes permet effectivement d'intégrer les caractères des opérateurs dans la recherche :
https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22Criterion+iv:+The+excavated%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 1 résultat)
(à condition que les guillemets entourent toute la chaîne et qu'un blanc précède les ':')

Cependant, la recherche ne peut plus être précisée, de façon linéaire, en ajoutant du contenu (comme c'était le cas sans les guillemets).

Fonctionnement actuel : Avec les guillemets : Idem (en moins restrictif) avec '"capitale" AND "relig"' (=> 0 résultats) Je pensais m'en tirer plus ou moins avec '[début] AND ":" AND [fin]' mais non :

(j'ai posé la question par mail à à tout hasard)

#4

Mis à jour par Nicolas Roche il y a presque 4 ans

  • Lié à Bug #43235: opendatasoft: faire la recherche sur le terme précis. ajouté
#8

Mis à jour par Nicolas Roche il y a 9 mois

  • Assigné à Nicolas Roche supprimé

On peut encore reproduire :

$ curl 'https://public.opendatasoft.com/api/records/1.0/search/?dataset=aires-et-produits-aocaop-et-igp&q=2019-08-30T12:00:00+00:00'| json_pp
{
   "error" : "The query is invalid : Field 00 doesn't exist" 
}

Ça ne sera pas corrigé puisque que l'API v1 est déclarée obsolète
https://userguide.opendatasoft.com/l/fr/article/5i892muzbr-utilisation-de-l-api

Formats disponibles : Atom PDF