Trier une réponse en fonction de données dynamique

Bonjour,

Je souhaite pouvoir trier des documents en fonction d'une donnée dynamique disponible au moment de la requête.

J'ai le mapping minimum suivant :

{
  "perf_immo_dev_idxtodolist": {
    "mappings": {
      "todolist": {
        "properties": {
          "fieldUsedForSort": {
            "type": "string",
            "analyzer": "keyword"
          }
        }
      }
    }
  }
}

Example d'un document :

{
  some data ...,
  "fieldUsedForSort": ["toto", "titi", "tata"]
}

Je voudrais pouvoir mettre en premier les documents qui contiennent la valeur "toto" dans le champs fieldUsedForSort.
Cette valeur "toto" étant dynamique et changeant à chaque requête.

Merci d'avance pour votre réponse.

Tu pourrais éventuellement utiliser un script? https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_script_based_sorting

Ou faire du fonction_score? https://www.elastic.co/guide/en/elasticsearch/reference/6.0/query-dsl-function-score-query.html

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.