Skip to content

Instantly share code, notes, and snippets.

@ToulBoy
Created February 29, 2012 15:12
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save ToulBoy/1941432 to your computer and use it in GitHub Desktop.
Save ToulBoy/1941432 to your computer and use it in GitHub Desktop.
Elasticsearch 0.18.6 : My example of "parent child"
curl -s -XPOST localhost:9200/_bulk?pretty=true --data-binary '
{ "index" : { "_index" : "parent_child", "_type" : "store", "_id" : "store1" } }
{ "name" : "auchan", "owner" : "chris" }
{ "index" : { "_index" : "parent_child", "_type" : "department", "_id" : "department1", "parent" : "store1" } }
{ "name" : "toys", "numberOfProducts" : 150 }
{ "index" : { "_index" : "parent_child", "_type" : "product", "_id" : "product1", "parent" : "department1", "routing" : "store1" } }
{ "name" : "gun", "trademark" : "tiger", "price" : 9, "store_id" : "store1" }
'
curl -XPOST 'http://localhost:9200/parent_child' -d '{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"store": {
"properties": {
"name": {
"type": "string"
},
"owner": {
"type": "string"
}
}
},
"department": {
"_parent": {
"type": "store"
},
"properties": {
"name": {
"type": "string"
},
"numberOfProducts": {
"type": "long"
}
}
},
"product": {
"_parent": {
"type": "department"
},
"_routing": {
"required": true,
"path": "store_id"
},
"properties": {
"name": {
"type": "string"
},
"trademark": {
"type": "string"
},
"price": {
"type": "long"
},
"store_id": {
"type": "string"
}
}
}
}
}'
curl -XPOST 'http://localhost:9200/parent_child/_search?pretty=true' -d '{
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"term": {
"name": "auchan"
}
}
]
}
},
"filter": {
"has_child": {
"type": "department",
"query": {
"filtered": {
"query": {
"bool": {
"must": [
{
"term": {
"name": "toys"
}
}
]
}
},
"filter": {
"has_child": {
"type": "product",
"query": {
"term": {
"trademark": "tiger"
}
}
}
}
}
}
}
}
}
}
}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment