Elasticsearch : Base & REST

Récupérer (avancé)

Requêtes

Les requêtes s'écrivent en Query DSL.

Assez différent de SQL et en JSON.

AttentionRequête en POST ?

Oui, car on a un corps dans la requête.

The truth is that RFC 7231—the RFC that deals with HTTP semantics and content—does not define what should happen to a GET request with a body! As a result, some HTTP servers allow it, and some—especially caching proxies—don't.

MéthodeTout récupérer

1
POST /api04/students/_search
2
{
3
  "query": {
4
    "match_all": {}
5
  }
6
}
7
1
POST /api04/students/_search
2
{
3
  "query": {
4
    "match_all": {}
5
  },
6
  "size": 100
7
}

MéthodePar mot exact dans un champ

1
POST /api04/students/_search
2
{
3
  "query": {
4
    "match": {
5
      "firstName": "alexandra"
6
    }
7
  }
8
}

MéthodeAvec une regex

1
POST /api04/students/_search
2
{
3
  "query": {
4
    "wildcard": {
5
      "firstName": "alexandr?"
6
    }
7
  }
8
}

? = Un caractère

* = Zéro, un ou plusieurs caractères

ConseilLe scoring

A partir de maintenant, le scoring devient intéressant !

MéthodePar mot dans tous les champs d'un document

1
POST /api04/students/_search
2
{
3
  "query": {
4
    "match": {
5
      "_all": "sylvain travel"
6
    }
7
  }
8
}

_all permet de concaténer tous les champs de ce document.

MéthodeAvec plusieurs mots dans un champ

1
POST /api04/students/_search
2
{
3
  "query": {
4
    "match": {
5
      "about": {
6
        "query": "travel cars",
7
        "operator": "and"
8
      }
9
    }
10
  }
11
}

Par défaut, l'opérateur est or

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Sylvain Doignon, 2015 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)