data-discovery issueshttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues2023-09-27T17:18:46+02:00https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/91Ajustement de la navbar et uniformisation faidare et datadiscovery2023-09-27T17:18:46+02:00Cyril PommierAjustement de la navbar et uniformisation faidare et datadiscovery# Objectif
- Les navbar de [datadiscovery saveur FAIDARE](https://urgi.versailles.inrae.fr/faidare/search?query=apache&descendants=false) et de [FAIDARE cards ](https://urgi.versailles.inrae.fr/faidare/germplasm?id=aHR0cHM6Ly9kb2kub3JnLz...# Objectif
- Les navbar de [datadiscovery saveur FAIDARE](https://urgi.versailles.inrae.fr/faidare/search?query=apache&descendants=false) et de [FAIDARE cards ](https://urgi.versailles.inrae.fr/faidare/germplasm?id=aHR0cHM6Ly9kb2kub3JnLzEwLjE1NDU0L1Y4V1JIWQ%3D%3D)sont différentes. Il faudrait les uniformiser.
- Il y a deux menus dans la navbar, "URGI" et "Plus". Il faudrait laisser le menu URGI inchangé. Il faudrait sortir tous les éléments du menu "Plus" et les ajouter à la racine de la navbarTest milestone several projectshttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/90Add BrAPI V2 & 1.3 to FAIDARE after Spring Boot 3 upgrade2023-11-15T11:17:26+01:00Cyril PommierAdd BrAPI V2 & 1.3 to FAIDARE after Spring Boot 3 upgrade# Objectif
Passer le backend de l'application FAIDARE responsable des cards et des web services brapi sous du pur springdata plutôt que le rest client existant.
**NB**: FAIDARE continuera à fournir les WS BrAPI V1.3 en plus des V2.1.
#...# Objectif
Passer le backend de l'application FAIDARE responsable des cards et des web services brapi sous du pur springdata plutôt que le rest client existant.
**NB**: FAIDARE continuera à fournir les WS BrAPI V1.3 en plus des V2.1.
# Roadmap
1. Développement d'un prototype contenant les requêtes et les web services, [isolé de FAIDARE](https://forgemia.inra.fr/urgi-is/faidare-sd-poc) **URGI** + évaluation et conseil **NINJA**?
$`\textcolor{green}{\text{DONE}}`$, voir https://forgemia.inra.fr/urgi-is/faidare-sd-poc
**NB:** Pour la configuration du client springData ElasticSearch j'ai utilisé [8.5. Annotation based configuration](https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.annotation) . En ajoutant un ElasticSearchClient. Il faut sans doute revoir la création de ce client d'une par pour utiliser le server config existant et d'autres part pour probablement implémenter plus proprement le [RestClient](https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/clients.html)
2. FAIDARE : Mise en place de Spring Boot 3 dans le backend (squelette/architecture de base). Pas de réécriture des requètes existantes qui seront à terme supprimées. **NINJA**
2. ETL mis à jour pour la BrAPI V2 **URGI** $`\textcolor{orange}{\text{In Progress}}`$
3. Transfert des requètes et web services du POC vers FAIDARE **URGI** et **NINJA**
# Transfert du nouveau backend vers FAIDARE cards
## Contraintes et points d'attentions
- garder le repo GIT existant. La CI et l'ensemble de nos scripts foncitonne dessus, migrer vers un nouveau repo serait contraignant.
- Dans le [POC](https://forgemia.inra.fr/urgi-is/faidare-sd-poc), les repertoires à transférer sont en particulier
- `src/main/java/fr/inrae/urgi/faidare`, `src/main/resources` , `src/test/java/fr/inrae/urgi/faidare`
- Certains éléments du backend actuels sont à conserver : CropOntologyRepository, Tymeleaf
- Il est sans doute préférable de retirer toute la couche spring boot existante pour réinsérer une couche springboot3 propre.
- Pour la configuration du client springData ElasticSearch j'ai utilisé [8.5. Annotation based configuration](https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.annotation) . En ajoutant un ElasticSearchClient. Il faut sans doute revoir la création de ce client d'une par pour utiliser le server config existant et d'autres part pour probablement implémenter plus proprement le [RestClient](https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/clients.html)https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/89Technical maintenance 20232023-06-23T18:03:48+02:00Cyril PommierTechnical maintenance 2023This is a general issue to track version updates and general improvements to the codebase.
See #82This is a general issue to track version updates and general improvements to the codebase.
See #82Exbrayat CédricExbrayat Cédrichttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/87Follow-up from "feat: increase of search depth"2022-06-10T16:57:53+02:00Cyril PommierFollow-up from "feat: increase of search depth"The following discussion from !404 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/404#note_94960): (+1 comment)
> "and faidare directory for wheat...The following discussion from !404 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/404#note_94960): (+1 comment)
> "and faidare directory for wheatis" also, no?https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/86Follow-up from "feat: increase of search depth"2022-06-10T16:56:30+02:00Cyril PommierFollow-up from "feat: increase of search depth"The following discussion from !404 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/404#note_94961): (+1 comment)
> Lots of polluting space/tabs cha...The following discussion from !404 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/404#note_94961): (+1 comment)
> Lots of polluting space/tabs changes here. :Phttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/84docker compose up fails due to sonar entries in docker.env2022-03-14T14:45:32+01:00Jean-Baptiste Nizetdocker compose up fails due to sonar entries in docker.envWhen starting the docker container using `docker compose up` (the newer compose, part of docker), it fails with the error:
```
unexpected character "." in variable name near "systemProp.sonar.sources=frontend/src
```
Do we really need ...When starting the docker container using `docker compose up` (the newer compose, part of docker), it fails with the error:
```
unexpected character "." in variable name near "systemProp.sonar.sources=frontend/src
```
Do we really need those sonar environment variables?
Note: it runs fine with the old `docker-compose up` command.Raphaël FloresRaphaël Floreshttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/82Technical maintenance 20222023-05-26T10:03:49+02:00Exbrayat CédricTechnical maintenance 2022This is a general issue to track version updates and general improvements to the codebase.This is a general issue to track version updates and general improvements to the codebase.https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/79Add content to the news markdown page and update other pages2021-09-08T14:23:12+02:00Exbrayat CédricAdd content to the news markdown page and update other pagesWhile merging faidare into data-discovery, we found that there was no markdown page for the `/news` page.
MR !371 added empty pages to avoid runtime errors, but the page should be filled with relevant content (as we discussed in the last...While merging faidare into data-discovery, we found that there was no markdown page for the `/news` page.
MR !371 added empty pages to avoid runtime errors, but the page should be filled with relevant content (as we discussed in the last meeting in July).
The other pages are present and with content, but some content might need to be updated before going to production (for example the Help section details how the various tabs works, and they are not the same in the merged version of faidare).Célia MichoteyCélia Michoteyhttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/77Add robots.txt in urgi website root to point to sitemaps file2023-05-26T18:03:05+02:00Cyril PommierAdd robots.txt in urgi website root to point to sitemaps filehttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/76Follow-up from "Merge WheatIS and DataDiscovery files"2021-08-16T11:07:34+02:00Raphaël FloresFollow-up from "Merge WheatIS and DataDiscovery files"The following discussion from !359 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/359#note_61626): (+15 comments)
> @erik.kimmel @celia.michotey l...The following discussion from !359 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/359#note_61626): (+15 comments)
> @erik.kimmel @celia.michotey looks at this commit to review the code: https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/359/diffs?commit_id=919707f883a92ca5d094fd246534301adfaefe01
>
> The other commit only cleans the data files.Erik KimmelErik Kimmelhttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/72Filtre sur les alias en cas d'instance privée2021-06-29T17:54:21+02:00Cyril PommierFiltre sur les alias en cas d'instance privéehttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/68Remove search sections from faidare2021-06-29T17:53:23+02:00Cyril PommierRemove search sections from faidareSi angular est conservé, retirer la partie recherche de FAIDARE et ne garder que les cards.NB: nous avions prévus en mars que l'INRAE s'en charge dans ce cas de figure.
Si thymleaf est conservé, retirer completement la partie frontend ...Si angular est conservé, retirer la partie recherche de FAIDARE et ne garder que les cards.NB: nous avions prévus en mars que l'INRAE s'en charge dans ce cas de figure.
Si thymleaf est conservé, retirer completement la partie frontend et la remplacer par les cards thymeleafhttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/64Docker image for CI builds2021-06-23T15:05:37+02:00Exbrayat CédricDocker image for CI buildsUntil now, the CI build used a custom Docker image I made a few years ago, `docker-rare`.
This image has been maintained by @raphael.flores since then.
We now added a few end-to-end tests to the application, using Cypress. To run these ...Until now, the CI build used a custom Docker image I made a few years ago, `docker-rare`.
This image has been maintained by @raphael.flores since then.
We now added a few end-to-end tests to the application, using Cypress. To run these tests, we need xvfb on the docker image.
As a shortcut, I replaced the base image with an image provided by circleci, that offers a jdk 8, browsers, and vxfb. The image is also maintained up-to-date, and lighter than the one we have.
@raphael.flores mentioned that this probably breaks other jobs like the indexing one.
The long term plan could be:
- to keep the circleci image for test jobs
- to remove docker-rare
- to create a dedicated image (if needed) for the broken jobs. Maybe another image provided by circleci could do the job as well.
An alternative would be to update docker-rare to include xvfb, and keep using it.
Original discussion: https://forgemia.inra.fr/urgi-is/data-discovery/-/commit/67cfa26e5ce0dbb25d5758c8963b95c612bb1525#note_57210https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/56Add an hidden filter by pillar2020-06-29T15:33:57+02:00Exbrayat CédricAdd an hidden filter by pillarThe application should be able to filter the resources by pillar, but as a hidden filter.
To do so, we'll add a list of pillars allowed/blocked, and this filter will be applied automatically on every search.The application should be able to filter the resources by pillar, but as a hidden filter.
To do so, we'll add a list of pillars allowed/blocked, and this filter will be applied automatically on every search.https://forgemia.inra.fr/urgi-is/data-discovery/-/issues/55[rare-basket] add a feature flag to enable/disable rare-basket2020-06-22T09:24:48+02:00Exbrayat Cédric[rare-basket] add a feature flag to enable/disable rare-basketAll the applications will not necessarily be deployed with the "RARe basket" feature.
We currently include it in the RARe build, but after discussing it, we decided to include it based on a feature flag.All the applications will not necessarily be deployed with the "RARe basket" feature.
We currently include it in the RARe build, but after discussing it, we decided to include it based on a feature flag.Exbrayat CédricExbrayat Cédrichttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/54Create legal mention RGPD compliant2020-04-23T12:36:12+02:00Raphaël FloresCreate legal mention RGPD compliantÀ modifier pour afficher dans les mentions légales de RARe : ([source](https://www.cnil.fr/fr/exemple-dinformation-clients-dun-site-de-vente-en-ligne-prospection-par-courriel-et-transmission-de))
>>>
# Mentions légales
## Objet du trai...À modifier pour afficher dans les mentions légales de RARe : ([source](https://www.cnil.fr/fr/exemple-dinformation-clients-dun-site-de-vente-en-ligne-prospection-par-courriel-et-transmission-de))
>>>
# Mentions légales
## Objet du traitement (finalité et base légale)
Nous disposons d’un site internet de commande de ressources génétique. Ce site permet de recevoir les commandes de nos clients et les données collectées à cette occasion sont enregistrées et traitées dans un fichier clients.
Ce fichier permet de :
Gérer les commandes, le paiement et la livraison.
Mener des opérations de marketing (fidélisation, promotions) et adresser des publicités par courriel auprès de nos clients qui ne s’y sont pas opposés ou qui l’ont accepté :
Sur des produits analogues à ceux qu’ils ont commandés.
Sur d’autres produits proposés par la société. Par exemple, si un client achète une robe, une crème pour le corps pourra lui être proposée.
Transmettre les données de nos clients qui l’ont accepté à nos partenaires commerciaux, pour leur permettre de leur adresser de la publicité (cf. ci-dessous).
Bases légales des traitements
Gestion des commandes : la base légale du traitement est l’exécution d’un contrat (Cf. article 6.1.b) du Règlement européen sur la protection des données).
Envoi de sollicitations commerciales par courriel sur des produits analogues à ceux commandés par les clients : la base légale du traitement est l’intérêt légitime de la société (Cf. article 6.1.f) du Règlement européen sur la protection des données), à savoir promouvoir nos produits auprès de nos clients.
Envoi de sollicitations commerciales par courriel sur d’autres produits proposés par la société ABCD : la base légale du traitement est le consentement (Cf. article 6.1.a) du Règlement européen sur la protection des données), comme l’exige l’article L. 34-5 du code des postes et des communications électroniques.
Transmission de l’adresse électronique aux partenaires commerciaux : la base légale du traitement est le consentement (Cf. article 6.1.a) du Règlement européen sur la protection des données), comme l’exige l’article L. 34-5 du code des postes et des communications électroniques.
Catégories de données
Identité : civilité, nom, prénom, adresse, adresse de livraison, numéro de téléphone, adresse électronique, date de naissance, code interne de traitement permettant l'identification du client, données relatives à l’enregistrement sur des listes d’opposition.
Données relatives aux commandes : numéro de la transaction, détail des achats, montant des achats, données relatives au règlement des factures (règlements, impayés, remises), retour de produits.
Données relatives aux moyens de paiement : numéro de carte bancaire, date de fin de validité de la carte bancaire, cryptogramme visuel (lequel est immédiatement effacé).
Données nécessaires à la réalisation des actions de fidélisation et de prospection : historique des achats.
Destinataires des données
Les services clients et facturation de la société ABCD sont destinataires de l’ensemble des catégories de données.
Ses sous-traitants, chargés de la livraison de ses commandes, sont destinataires de l’identité, de l’adresse et du numéro de téléphone de nos clients.
Les adresses électroniques des clients qui l’ont accepté sont mises à disposition de nos partenaires commerciaux (liste des partenaires commerciaux, régulièrement mise à jour) :
société X
société Y
société Z
Durée de conservation des données
Données nécessaires à la gestion des commandes et à la facturation : pendant toute la durée de la relation commerciale et dix (10) ans au titre des obligations comptables.
Données nécessaires à la réalisation des actions de fidélisation et à la prospection : pendant toute la durée de la relation commerciale et trois (3) ans à compter du dernier achat.
Données relatives aux moyens de paiement : ces données ne sont pas conservées par la société ABCD ; elles sont collectées lors de la transaction et sont immédiatement supprimées dès le règlement de l’achat.
Données concernant les listes d'opposition à recevoir de la prospection : trois (3) ans.
Vos droits
Si vous ne souhaitez plus recevoir de publicité de la part de la société ABCD (exercice du droit d’opposition ou retrait d’un consentement déjà donné), contactez-nous (prévoir ici un lien vers un formulaire d’exercice des droits informatique et libertés, faisant apparaître les différents hypothèses détaillées ci-dessus).
Si, après avoir consenti à ce que vos données soient transmises à nos partenaires commerciaux, vous souhaitez revenir sur ce choix et ne plus recevoir publicité de leur part, contactez-nous (prévoir ici un lien vers le formulaire d’exercice des droits informatique et libertés).
(NB : un lien permettant aux clients et prospects de demander la suppression de leur adresse électronique de la liste de prospection doit systématiquement figurer sur les sollicitations envoyées par courriel)
Vous pouvez accéder aux données vous concernant, les rectifier ou les faire effacer. Vous disposez également d'un droit à la portabilité et d’un droit à la limitation du traitement de vos données (Consultez le site cnil.fr pour plus d’informations sur vos droits).
Pour exercer ces droits ou pour toute question sur le traitement de vos données dans ce dispositif, vous pouvez contacter notre DPO.
Contacter notre DPO par voie électronique : dpo@abcd.fr
Contacter notre DPO par courrier postal :
Le délégué à la protection des données
Société ABCD
Rue la Transparence
96 000 CONFIANCE
(NB : si vous n’avez pas de DPO, indiquez des coordonnées précises où exercer ces droits dans l’entreprise).
Si vous estimez, après avoir contacté la société ABCD, que vos droits « Informatique et Libertés » ne sont pas respectés, vous pouvez adresser une réclamation en ligne à la CNIL.
>>>Anne-Francoise Adam-BlondonAnne-Francoise Adam-Blondonhttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/53Properly harvest and map the identifier property of the RARe JSON documents2020-04-21T09:41:15+02:00Jean-Baptiste NizetProperly harvest and map the identifier property of the RARe JSON documentsThe gzipped JSON files seem to contain an `identifier` property, containing the functional accession identifier that will be used in rare-basket along with the name to identify the accession.
However, the new harvesting process doesn't ...The gzipped JSON files seem to contain an `identifier` property, containing the functional accession identifier that will be used in rare-basket along with the name to identify the accession.
However, the new harvesting process doesn't seem to store this property in ElasticSearch.
And the Java `RareDocument` class doesn't seem to have such a property either. Although that is a bit unclear to me because it has one `id` property with is annotatated with Jackson `@JsonProperty("identifier")`, so I guess (because I don't remember exactly how ElasticSearch and Spring work together) that the JSON that the frontend receives indeed has an identifier property, but that this `identifier` property is in fact mapped to the technical id used by ElasticSearch.Raphaël FloresRaphaël Floreshttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/52Follow-up from "Configure CI to run on Openstack"2020-03-12T18:36:49+01:00Raphaël FloresFollow-up from "Configure CI to run on Openstack"The following discussion from !182 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/182#note_17421):
> This template could be useful if we still wer...The following discussion from !182 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/-/merge_requests/182#note_17421):
> This template could be useful if we still were using ILM. But because of ILM is now disabled (an alias cannot be declared as target of another alias), the template is perhaps not useful anymore....Raphaël FloresRaphaël Floreshttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/51Follow-up from "Add brc4env-epcoll test file."2021-01-05T16:30:56+01:00Raphaël FloresFollow-up from "Add brc4env-epcoll test file."The following discussion from !138 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/merge_requests/138#note_19847): (+1 comment)
> Well not at all, I'm sorry.
> ...The following discussion from !138 should be addressed:
- [ ] @raphael.flores started a [discussion](https://forgemia.inra.fr/urgi-is/data-discovery/merge_requests/138#note_19847): (+1 comment)
> Well not at all, I'm sorry.
>
> There are few (4) duplicates in Florilège file `rare_pilier-plante_florilege.utf8.json.gz`:
>
> ```sh
> rflores@urgi131:~/local/git/data-discovery/data/rare (data/add-brc4env-epcoll-data *$%=) $ diff /tmp/id.sort /tmp/id.sort.uniq
> 16498d16497
> < "CRB Prunier - Madame Bonnard"
> 16503d16501
> < "CRB Prunier - Mirabelle de Nancy"
> 16516d16513
> < "CRB Prunier - Prune de Chien"
> 39172d39168
> < "Sorgho - France"
> ```
>
> The first one looks to have all same properties, but not all others:
>
> ```json
> rflores@urgi131:~/local/git/data-discovery/data/rare (data/add-brc4env-epcoll-data *$%=)$ jq '.[]|select(.identifier=="CRB Prunier - Madame Bonnard")' $file
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Madame Bonnard",
> "name": "Madame Bonnard",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus domestica",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": null,
> "locationOfCollect": null
> }
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Madame Bonnard",
> "name": "Madame Bonnard",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus domestica",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": null,
> "locationOfCollect": null
> }
> ```
> OK
>
>
> ```json
> rflores@urgi131:~/local/git/data-discovery/data/rare (data/add-brc4env-epcoll-data *$%=) $ jq '.[]|select(.identifier=="CRB Prunier - Mirabelle de Nancy")' $file
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Mirabelle de Nancy",
> "name": "Mirabelle de Nancy. Collect location: Lucey - Meurthe-et-Moselle (54) - France",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus insititia",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": {
> "lat": 48.7225,
> "lon": 5.8375
> },
> "locationOfCollect": null
> }
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Mirabelle de Nancy",
> "name": "Mirabelle de Nancy. Collect location: Thélod - Meurthe-et-Moselle (54) - France",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus insititia",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": {
> "lat": 48.5467,
> "lon": 6.04528
> },
> "locationOfCollect": null
> }
> ```
> locationOfOrigin is differing.
>
>
> ```json
> rflores@urgi131:~/local/git/data-discovery/data/rare (data/add-brc4env-epcoll-data *$%=) $ jq '.[]|select(.identifier=="CRB Prunier - Prune de Chien")' $file
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Prune de Chien",
> "name": "Prune de Chien. Collect location: Sabres - Landes (40) - France",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus domestica",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": {
> "lat": 44.1497,
> "lon": -0.739167
> },
> "locationOfCollect": null
> }
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "CRB Prunier - Prune de Chien",
> "name": "Prune de Chien. Collect location: Sabres - Landes (40) - France",
> "description": "Traditional cultivar/landrace",
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Prunus domestica",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "FRA",
> "countryOfCollect": null,
> "locationOfOrigin": {
> "lat": 44.1497,
> "lon": -0.739167
> },
> "locationOfCollect": null
> }
> ```
>
> Looks OK.
>
>
> ```json
> rflores@urgi131:~/local/git/data-discovery/data/rare (data/add-brc4env-epcoll-data *$%=) $ jq '.[]|select(.identifier=="Sorgho - France")' $file
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "Sorgho - France",
> "name": "AGEN",
> "description": null,
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Sorghum bicolor",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "NGA",
> "countryOfCollect": null,
> "locationOfOrigin": null,
> "locationOfCollect": null
> }
> {
> "pillarName": "Pilier Plante",
> "databaseSource": "Florilege",
> "portalURL": "http://florilege.arcad-project.org",
> "identifier": "Sorgho - France",
> "name": "TIGNE",
> "description": null,
> "dataURL": null,
> "domain": "Plantae",
> "taxon": "Sorghum bicolor",
> "family": null,
> "genus": null,
> "species": null,
> "materialType": null,
> "biotopeType": null,
> "countryOfOrigin": "SEN",
> "countryOfCollect": null,
> "locationOfOrigin": null,
> "locationOfCollect": null
> }
> ```
> `countryOfOrigin` is differingCélia MichoteyCélia Michoteyhttps://forgemia.inra.fr/urgi-is/data-discovery/-/issues/48Allows for searching exact terms2021-07-29T10:56:18+02:00Raphaël FloresAllows for searching exact termsIn some situation, users want to search on exact terms ie. by using double quotes around the given term.
We could implement such exact search with the help of the `quote_field_suffix` in queries of type [`query_string`](https://www.elas...In some situation, users want to search on exact terms ie. by using double quotes around the given term.
We could implement such exact search with the help of the `quote_field_suffix` in queries of type [`query_string`](https://www.elastic.co/guide/en/elasticsearch/reference/6.6/query-dsl-query-string-query.html) and [`simple_query_string`](https://www.elastic.co/guide/en/elasticsearch/reference/6.6/query-dsl-simple-query-string-query.html). But this would need a refactor of how the search is done atm, because we are using a [`multi_match`](https://www.elastic.co/guide/en/elasticsearch/reference/6.6/query-dsl-multi-match-query.html) query.
A recipe: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/mixing-exact-search-with-stemming.htmlRaphaël FloresRaphaël Flores