Add CONSOLE to post-filter
This commit is contained in:
parent
125b715e45
commit
a3425b4bf8
|
@ -5,14 +5,43 @@ The `post_filter` is applied to the search `hits` at the very end of a search
|
|||
request, after aggregations have already been calculated. Its purpose is
|
||||
best explained by example:
|
||||
|
||||
Imagine that you are selling shirts, and the user has specified two filters:
|
||||
Imagine that you are selling shirts that have the following properties:
|
||||
|
||||
[source,js]
|
||||
-------------------------------------------------
|
||||
PUT /shirts
|
||||
{
|
||||
"mappings": {
|
||||
"item": {
|
||||
"properties": {
|
||||
"brand": { "type": "keyword"},
|
||||
"color": { "type": "keyword"},
|
||||
"model": { "type": "keyword"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PUT /shirts/item/1?refresh
|
||||
{
|
||||
"brand": "gucci",
|
||||
"color": "red",
|
||||
"model": "slim"
|
||||
}
|
||||
------------------------------------------------
|
||||
// CONSOLE
|
||||
// TESTSETUP
|
||||
|
||||
|
||||
Imagine a user has specified two filters:
|
||||
|
||||
`color:red` and `brand:gucci`. You only want to show them red shirts made by
|
||||
Gucci in the search results. Normally you would do this with a
|
||||
<<query-dsl-bool-query,`bool` query>>:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET localhost:9200/shirts/_search -d '
|
||||
GET /shirts/_search
|
||||
{
|
||||
"query": {
|
||||
"bool": {
|
||||
|
@ -23,8 +52,8 @@ curl -XGET localhost:9200/shirts/_search -d '
|
|||
}
|
||||
}
|
||||
}
|
||||
'
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
|
||||
However, you would also like to use _faceted navigation_ to display a list of
|
||||
other options that the user could click on. Perhaps you have a `model` field
|
||||
|
@ -36,7 +65,7 @@ This can be done with a
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET localhost:9200/shirts/_search -d '
|
||||
GET /shirts/_search
|
||||
{
|
||||
"query": {
|
||||
"bool": {
|
||||
|
@ -52,8 +81,8 @@ curl -XGET localhost:9200/shirts/_search -d '
|
|||
}
|
||||
}
|
||||
}
|
||||
'
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
<1> Returns the most popular models of red shirts by Gucci.
|
||||
|
||||
But perhaps you would also like to tell the user how many Gucci shirts are
|
||||
|
@ -67,12 +96,12 @@ the `post_filter`:
|
|||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
curl -XGET localhost:9200/shirts/_search -d '
|
||||
GET /shirts/_search
|
||||
{
|
||||
"query": {
|
||||
"bool": {
|
||||
"filter": {
|
||||
{ "term": { "brand": "gucci" }} <1>
|
||||
"term": { "brand": "gucci" } <1>
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -95,8 +124,8 @@ curl -XGET localhost:9200/shirts/_search -d '
|
|||
"term": { "color": "red" }
|
||||
}
|
||||
}
|
||||
'
|
||||
--------------------------------------------------
|
||||
// CONSOLE
|
||||
<1> The main query now finds all shirts by Gucci, regardless of color.
|
||||
<2> The `colors` agg returns popular colors for shirts by Gucci.
|
||||
<3> The `color_red` agg limits the `models` sub-aggregation
|
||||
|
|
Loading…
Reference in New Issue