Rédiger et exécuter une requête de recherche de termes et/ou de phrases dans un ou plusieurs champs d'un index
Cheat Sheet
PUT /shakespeare
{
"mappings": {
"properties": {
"speaker": {"type": "keyword"},
"play_name": {"type": "keyword"},
"line_id": {"type": "integer"},
"speech_number": {"type": "integer"}
}
}
}
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
GET _cat/nodes?v
GET _cat/indices?v
### Recherche plusieurs terms (match)
GET _search
{
"query": {
"match": {
"text_entry": "to be or not to be"
}
}
}
### Recherche une phrase en entière (match phrase)
GET _search
{
"query": {
"match_phrase": {
"text_entry": "to be or not to be"
}
}
}
### Recherche un term dans un champs spécifique (multi match)
GET _search
{
"query": {
"multi_match": {
"query": "Crime",
"fields": ["text_entry", "relatedContent.og:description"]
}
}
}
### Recherche plusieurs terms dans un champs spécifique (query string)
GET _search
{
"query": {
"query_string": {
"default_field": "text_entry",
"query": "(romeo AND juliet) OR (mother AND father)"
}
}
}
### Recherche un term dans un champs spécifique sans utiliser un analyseur de texte (term)
GET _search
{
"query": {
"term": {
"speaker": {
"value": "ROMEO"
}
}
}
}
### Recherche plusieurs terms dans un champs spécifique sans utiliser un analyseur de texte (terms)
GET _search
{
"query": {
"terms": {
"speaker": [
"ROMEO",
"JUILIET",
"HAMLET"
]
}
}
}
### Recherche une valeur entre 40 et 50 dans un champs spécifique (range)
GET _search
{
"query": {
"range": {
"age": {
"gte": 40,
"lt": 50
}
}
}
}
### Recherche une valeur wildcard dans un champs spécifique (wildcard)
GET _search
{
"query": {
"wildcard": {
"city.keyword": {
"value": "*ville"
}
}
}
}
### Recherche une valeur avec une regex dans un champs spécifique (regex)
GET _search
{
"query": {
"regex": {
"email.keyword": ".*@xurban\\.com"
}
}
}