Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G Genesys Catalog Server
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Genesys PGR
  • Genesys Catalog
  • Genesys Catalog Server
  • Issues
  • #167
Closed
Open
Created Jun 20, 2018 by Matija Obreza@mobrezaOwner

Elasticsearch

Add support for searching Catalog data using Elasticsearch.

Indexing

  1. Entities should be automatically added and removed from ES (on JPA Save/Remove)
  2. ES index must be configured to index entity data and all relevant related data.

Search

  1. Develop individual API endpoints for datasets, descriptors, descriptor lists
  2. API search endpoint will search ES and return matching entities

Search results

Search results returned by the API are grouped by "entity": descriptor terms, crops, institutes, etc. and ordered by relevance to the search.

The selected hits are then applied as filter values to the filtering API. For that to work we need to know how various entities relate to what we are searching.

Example: Partners

Partners database accepts the following filters:

{
 "shortName": [ "string1", "string2" ],
 "name": { StringFilter },
 "description": { StringFilter },
 "wiewsCodes": [ "WIEWS1", "WIEWS2", "WIEWS3" ]
}

When the Search API returns matching records from the "FAO WIEWS Institute codes" vocabulary, these hits can only be applied to the wiewsCode Partner filter.

Example: Dataset

Dataset filtering accepts:

{
 "owner": { PartnerFilter },
 "accessionIdentifier": { AccessionIdentifierFilter },
 "descriptor": { DescriptorFilter },
 "crop": [ "crop1", "crop2" ],
 ...
}

Hits from Crop entity can be applied to crop filter, hits from Descriptor entity can be applied to descriptor.id filter.

Edited Jun 20, 2018 by Matija Obreza
Assignee
Assign to
Time tracking