对搜索出来的结果进行数据过滤。不会到es库里去搜,不会去计算文档的相关度分数,所以过滤的性能会比较高,过滤器可以和全文搜索结合在一起使用。
    post_filter元素是一个顶层元素,只会对搜索结果进行过滤。不会计算数据的匹配度相关性分数,不会根据分数去排序,query则相反,会计算分数,也会按照分数去排序。
    使用场景:

    • query:根据用户搜索条件检索匹配记录
    • post_filter:用于查询后,对结果数据的筛选

    实操:查询账户金额大于80元,小于160元的用户。并且生日在1998-07-14的用户

    • gte:大于等于
    • lte:小于等于
    • gt:大于
    • lt:小于
      (除此以外还能做其他的match等操作也行) ```shell POST /shop/_doc/_search

    { “query”: { “match”: { “desc”: “慕课网游戏” }
    }, “post_filter”: { “range”: { “money”: { “gt”: 60, “lt”: 1000 } } }
    }

    ```