Development #43224
opendatasoft vs :
0%
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
Historique
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 ?
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.
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 :- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=capitale&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 40 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=capitale+relig&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 27 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=capitale+religieuse&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 15 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capitale%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 40 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capitale+relig%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 0 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capitale+religieuse%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 2 résultats)
"capitale" AND "relig"
' (=> 0 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capitale%22%20AND%20%22relig%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 0 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capitale%22%20AND%20%22religieuse%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr (=> 8 résultats)
- https://examples.opendatasoft.com/api/records/1.0/search/?rows=40&q=%22capit:ale%22%20AND%20%22religieuse%22&start=0&dataset=world-heritage-unesco-list&timezone=Europe%2FBerlin&lang=fr
"error": "The query is invalid : Field \"capit doesn't exist"
(j'ai posé la question par mail à support@opendatasoft.com à tout hasard)
Mis à jour par Nicolas Roche il y a presque 4 ans
- Lié à Bug #43235: opendatasoft: faire la recherche sur le terme précis. ajouté
Mis à jour par Nicolas Roche il y a 9 mois
- Assigné à
Nicolas Rochesupprimé
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