MST
星途 面试题库

面试题:ElasticSearch中条件限制类decider如何应用于简单的查询场景

假设在一个电商商品的ElasticSearch索引中,每个文档代表一件商品,包含价格、类别等字段。现在要查询价格在100到500之间且类别为电子产品的商品,阐述如何使用条件限制类decider来实现该查询,并写出相应的查询语句。
40.3万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. 使用bool查询来实现条件限制
    • bool查询是Elasticsearch中用于组合多个查询子句的查询类型,它可以包含must(必须满足)、should(应该满足)、must_not(必须不满足)等子句。
    • 对于这个需求,我们可以使用bool查询的must子句来组合价格范围查询和类别匹配查询。
  2. 查询语句如下
{
    "query": {
        "bool": {
            "must": [
                {
                    "range": {
                        "价格": {
                            "gte": 100,
                            "lte": 500
                        }
                    }
                },
                {
                    "term": {
                        "类别": "电子产品"
                    }
                }
            ]
        }
    }
}

在上述查询语句中:

  • range查询用于指定价格字段的范围,gte表示大于等于(greater than or equal),lte表示小于等于(less than or equal)。
  • term查询用于精确匹配类别字段为“电子产品”。这两个查询条件都放在bool查询的must子句中,意味着文档必须同时满足这两个条件才能被返回。