ElasticSearch过滤请求

时间:2014-03-15 00:26:01

标签: elasticsearch

我得到了ES的请求示例:

POST /fnh_main/main/_search?size=0
{
    "query": {
                "filtered": {
                    "query" : {
                        "match_all": {}
            },
                    "filter": {
                        "geo_bounding_box": {
                            "location": {
                        "top_left" : "73.343091,-108.596992",
                        "bottom_right" : "-14.212892,139.957700"
                                        }
                                            }
                             }
                            } 
              },
    "facets" : {
        "places" : { 
            "geohash" : {
                "field" : "location",
                "factor" : 0.1
            }
        }
    }
}

我想要过滤此请求的几个字段:

  • 类型(可以是H,HO,А)
  • pricetype(可以是S,LT,ST)
  • 床(可以是1,2,3,4,5,> 6)
  • 价格(可以是范围)

我希望能够使用任何此参数过滤请求。请求可以是例如:

  • type - any
  • pricetype - S
  • 床 - > 6
  • 价格 - 100-200

我希望获得与所有这些参数匹配的结果。

两天的头脑风暴没有给出任何结果......

撰写此请求的最佳方式是什么?也许有人可以帮助我,感谢任何帮助!!!

1 个答案:

答案 0 :(得分:0)

您可以使用bool过滤器。在bool过滤器中,您将所有过滤的值放在单独的必须条件中。

有关更多信息,请参阅http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-filter.html