Skip to content

Instantly share code, notes, and snippets.

@boillodmanuel
Last active August 29, 2015 14:06
Show Gist options
  • Save boillodmanuel/3b4ae94134df5b5a59ff to your computer and use it in GitHub Desktop.
Save boillodmanuel/3b4ae94134df5b5a59ff to your computer and use it in GitHub Desktop.
Modélisation avec la solution de dénormalisation par utilisateur. Syntaxe : Elasticsearch Sense
# ################### USER VIEW ################# #
DELETE user_view
# Pas de Mapping
PUT user_view
{
"mappings": {
"umd": {
"properties": {
"im.im_id": { "type": "string"},
"cmd.client_id": { "type": "string"},
"umd.user_id": { "type": "string"}
}
}
}
}
# Data
PUT user_view/umd/11
{
"im": {
"im_id": "A",
"title" : "marche A",
"objet" : "riri",
"date" : "2009-11-15T14:12:12",
"labels": ["bleu", "vert"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": false
}
}
PUT user_view/umd/21
{
"im": {
"im_id": "A",
"title" : "marche B",
"objet" : "fifi",
"date" : "2009-11-15T18:00:00",
"labels": ["bleu", "jaune"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": true
}
}
PUT user_view/umd/31
{
"im": {
"im_id": "A",
"title" : "marche C",
"objet" : "loulou",
"date" : "2009-11-16T20:00:00",
"labels": ["rouge"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": false
}
}
PUT user_view/umd/32
{
"im": {
"im_id": "A",
"title" : "marche C",
"objet" : "loulou",
"date" : "2009-11-16T20:00:00",
"labels": ["rouge"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "julien",
"deleted": true
}
}
# Liste tous les documents
GET user_view/umd/_search
{
"query": {
"match_all": {}
}
}
# Liste tous les documents de l'utilisateur manu
GET user_view/umd/_search
{
"query": {
"match": { "umd.user_id": "manu"}
}
}
# Recherche des documents non supprimés de l'utilisateur manu
GET user_view/umd/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "marche"
}
},
{
"match": {
"umd.deleted": false
}
}
]
}
}
}
# Nb de document par statut utilisateur pour tous les utilisateurs (deleted ou non)
GET user_view/umd/_search?search_type=count
{
"query": {
"match_all": {}
},
"aggs": {
"status": {
"terms": {
"field": "umd.deleted"
}
}
}
}
# Nb de document par statut utilisateur pour l'utilisateur manu (deleted ou non)
GET user_view/umd/_search?search_type=count
{
"query": {
"match": {
"umd.user_id": "manu"
}
},
"aggs": {
"status": {
"terms": {
"field": "umd.deleted"
}
}
}
}
#Utilisation des alias
DELETE user_view_alias
DELETE user_view_manu
DELETE user_view_julien
# Pas de Mapping
PUT user_view_alias
{
"mappings": {
"umd": {
"properties": {
"im.im_id": { "type": "string"},
"cmd.client_id": { "type": "string"},
"umd.user_id": { "type": "string"}
}
}
}
}
# Alias (à faire avant l'indexation de doc)
PUT /user_view_alias/_alias/user_view_manu
{
"routing": "manu",
"filter": {
"term": {
"umd.user_id": "manu"
}
}
}
PUT /user_view_alias/_alias/user_view_julien
{
"routing": "julien",
"filter": {
"term": {
"umd.user_id": "julien"
}
}
}
# Data
PUT user_view_manu/umd/11
{
"im": {
"im_id": "A",
"title" : "marche A",
"objet" : "riri",
"date" : "2009-11-15T14:12:12",
"labels": ["bleu", "vert"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": false
}
}
PUT user_view_manu/umd/21
{
"im": {
"im_id": "A",
"title" : "marche B",
"objet" : "fifi",
"date" : "2009-11-15T18:00:00",
"labels": ["bleu", "jaune"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": true
}
}
PUT user_view_manu/umd/31
{
"im": {
"im_id": "A",
"title" : "marche C",
"objet" : "loulou",
"date" : "2009-11-16T20:00:00",
"labels": ["rouge"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "manu",
"deleted": false
}
}
PUT user_view_julien/umd/32
{
"im": {
"im_id": "A",
"title" : "marche C",
"objet" : "loulou",
"date" : "2009-11-16T20:00:00",
"labels": ["rouge"]
},
"cmd": {
"client_id": "x"
},
"umd": {
"user_id": "julien",
"deleted": true
}
}
# Liste tous les documents de l'utilisateur manu
GET user_view_manu/umd/_search
{
"query": {
"match_all": {}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment