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
|
request, after aggregations have already been calculated. Its purpose is
|
||||||
best explained by example:
|
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
|
`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
|
Gucci in the search results. Normally you would do this with a
|
||||||
<<query-dsl-bool-query,`bool` query>>:
|
<<query-dsl-bool-query,`bool` query>>:
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
curl -XGET localhost:9200/shirts/_search -d '
|
GET /shirts/_search
|
||||||
{
|
{
|
||||||
"query": {
|
"query": {
|
||||||
"bool": {
|
"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
|
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
|
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]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
curl -XGET localhost:9200/shirts/_search -d '
|
GET /shirts/_search
|
||||||
{
|
{
|
||||||
"query": {
|
"query": {
|
||||||
"bool": {
|
"bool": {
|
||||||
|
@ -52,8 +81,8 @@ curl -XGET localhost:9200/shirts/_search -d '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
// CONSOLE
|
||||||
<1> Returns the most popular models of red shirts by Gucci.
|
<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
|
But perhaps you would also like to tell the user how many Gucci shirts are
|
||||||
|
@ -67,12 +96,12 @@ the `post_filter`:
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
curl -XGET localhost:9200/shirts/_search -d '
|
GET /shirts/_search
|
||||||
{
|
{
|
||||||
"query": {
|
"query": {
|
||||||
"bool": {
|
"bool": {
|
||||||
"filter": {
|
"filter": {
|
||||||
{ "term": { "brand": "gucci" }} <1>
|
"term": { "brand": "gucci" } <1>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -95,8 +124,8 @@ curl -XGET localhost:9200/shirts/_search -d '
|
||||||
"term": { "color": "red" }
|
"term": { "color": "red" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'
|
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
// CONSOLE
|
||||||
<1> The main query now finds all shirts by Gucci, regardless of color.
|
<1> The main query now finds all shirts by Gucci, regardless of color.
|
||||||
<2> The `colors` agg returns popular colors for shirts by Gucci.
|
<2> The `colors` agg returns popular colors for shirts by Gucci.
|
||||||
<3> The `color_red` agg limits the `models` sub-aggregation
|
<3> The `color_red` agg limits the `models` sub-aggregation
|
||||||
|
|
Loading…
Reference in New Issue