elasticsearch 常用查询 7.4 版本


本文基于es 7.4版本文档

match:全文查询

{
    "query": {
        "match" : {
            "message" : {
                "query" : "this is a test"
            }
        }
    }
}

exists:查询存在的字段

{
    "query": {
        "exists": {
            "field": "user"
        }
    }
}

must_not:查询不存在的字段

{
    "query": {
        "bool": {
            "must_not": {
                "exists": {
                    "field": "user"
                }
            }
        }
    }
}

ids:跟据id查询

每个文档都有一个唯一标识它的 _id,该 _id 已加入索引,以便可以使用 GET API 或 ids 查询来查找文档。

{
    "query": {
        "ids" : {
            "values" : ["1", "4", "100"]
        }
    }
}

prefix:前缀查询

{
    "query": {
        "prefix" : { "user" : "ki" }
    }
}

range: 查询范围

gt:大于
gte:大于等于
lt:小于
lte:小于等于
format:用于转换查询中的日期值的日期格式。
默认情况下,Elasticsearch 使用 映射中提供的日期格式。 该值会覆盖该映射格式。

{
    "query": {
        "range" : {
            "age" : {
                "gte" : 10,
                "lte" : 20,
                "boost" : 2.0
            }
        }
    }
}

term:术语查询

返回在提供的字段中包含确切术语的文档。

您可以使用术语查询根据精确值(例如价格、产品 ID 或用户名)查找文档。

避免对文本的字段使用 term查询。

默认情况下,Elasticsearch 会更改文本字段的值作为分析的一部分。 这可能会使查找文本字段值的精确匹配变得困难。

要搜索普通文本字段值,建议用match查询。

{
    "query": {
        "term": {
            "user": {
                "value": "Kimchy",
                "boost": 1.0
            }
        }
    }
}

terms:多术语查询

{
    "query" : {
        "terms" : {
            "user" : ["kimchy", "elasticsearch"],
            "boost" : 1.0
        }
    }
}

Wildcard: 通配符查询

?,匹配任何单个字符
*,可以匹配零个或多个字符,包括空字符
注意:避免以 * 或 ? 开头的模式。 这可能会增加查找匹配项所需的迭代次数并降低搜索性能。

{
    "query": {
        "wildcard": {
            "user": {
                "value": "ki*y",
                "boost": 1.0,
                "rewrite": "constant_score"
            }
        }
    }
}

fuzzy: 模糊查询

匹配相似或纠正的单词

改变字符(box→fox)
删除一个字符(black→lack)
插入一个字符(sck→sick)
调换两个相邻字符(act → cat)

{
    "query": {
        "fuzzy": {
            "user": {
                "value": "ki"
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值