1. Query all.
GET http://localhost:9200/index/type/_search
2. Query by single value, using a query string.
GET http://localhost:9200/index/type/_search?q=firstName:John
3. Query by single term, using request body.
GET http://localhost:9200/index/type/_search
{
"query": {
"term": { "firstName" : "John" }
}
}
4. Paging query.
GET http://localhost:9200/index/type/_search
{
"from" : 0,
"size" : 10,
"query" : {
"term" : { "firstName" : "John" }
}
}
5. Pre-filter.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"filter": {
"term": { "firstName" : "John" }
}
}
}
}
6. Pre-filters.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [ {
"term": { "firstName": "John", "country": "US" }
} ]
}
}
}
}
}
7. Pre-filter terms.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [ {
"term": { "firstName": "John" }
}, {
"terms": { "country": [ "US", "CA" ] }
} ]
8. Missing email filter.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"filter": {
"missing": { "field" : "emailAddress" }
}
}
}
}
9. Pre-filtered query.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"query": {
"term": { "firstName": "John" }
},
"filter": {
"term": { "country": "US" }
}
}
}
}
10. Nested filter.
GET http://localhost:9200/index/type/_search
{
"query": {
"filtered": {
"filter": {
"nested": {
"path": "person",
"filter": {
"term": { "person.country": "US" }
}
}
}
}
}
}
11. Nested and non-nested filter.
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [ {
"term": { "firstName": "John" }
}, {
"nested": {
"path": "person",
"filter": {
"term": { "person.country": "US" }
}
}
} ]
}
}
}
}
}