Project

General

Profile

Development #43224

opendatasoft vs :

Added by Frédéric Péters 8 days ago. Updated 4 days ago.

Status:
Nouveau
Priority:
Normal
Assignee:
Target version:
-
Start date:
22 May 2020
Due date:
% Done:

0%

Patch proposed:
No
Planning:
No

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" 

Related issues

Related to Passerelle - Support #43235: opendatasoft: faire la recherche sur le terme précis. Nouveau 22 May 2020

History

#1 Updated by Nicolas Roche 8 days ago

  • Assignee set to 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 Updated by Frédéric Péters 8 days ago

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 Updated by Nicolas Roche 8 days ago

(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 Updated by Nicolas Roche 8 days ago

  • Related to Support #43235: opendatasoft: faire la recherche sur le terme précis. added

Also available in: Atom PDF