ElasticSearch 简单使用(2)

本教程接之前发过的一篇:https://blog.csdn.net/weixin_44219762/article/details/117606676,想了解的可以去看看。

本篇主要讲查询相关的使用。

1. 条件查询

1.1 GET请求

当查询一个词或者一段话的时候,es 会把查询的对象做一个分词,将这个词或者句子分成细小的字或者词,然后再做查询。如图:

1.2 query 请求

如果不想让它进行分词查询,例如我就只想查询 name 为 大叔叔 的数据,而不要 name 为 大叔 的数据。那我就可以稍微改一下:

2. 分页查询

当要查询的数据量比较大的时候,为了提高查询效率,我们往往会将查询过程进行分页。例如淘宝的搜索,是有分页的显示商品信息的。

我为了方便测试,创建了数十条数据,然后我会对他们进行分页查询。先只查询4条数据看看:

从图中可以看出,分页的核心其实就是控制好 from 和 size 的值而已。

当然还有别的操作,例如对数据进行升序或者降序的排序。

3. 多条件查询

上图中只展示了 与 查询,或 查询也可以举一反三,这儿就不多做赘述了,懂的都懂,不过确实要吐槽一下这个语法何其的别扭,must、should 改为 and、or 它不香嘛?语义也不清晰。

 4. 聚合查询

常用于统计数据,例如我要得到文档中,money 一样的值的数量是多少:

其中,size 为0的意思可能不好理解,我这儿也不多做截图了,大概就是“不显示查询到的具体数据”,这儿size可以尝试改为任意一个数字,你将会看到

这儿框出来的就是我指定了 size 为3,所以显示3条数据出来,即查询出你指定的 size 数量的数据出来,当然,不指定 size,它会把符合条件的数据都显示出来。

聚合查询还可以用来做其它的统计,例如计算价格的平均值(将 terms 改为 avg 即可)等等。

5. 查询所有文档

6. 映射关系

映射关系可以设置文档中具体字段是否可以被分词查询、被索引查询。这个功能在笔记中展示过于繁琐,所以在这儿仅做文本描述。

PUT请求,ip:host/文档名/_mapping

{
    "properties": {
        键1: {
            "type": "text",    // 可被分词查询
            "index": true
        },
        键2: {
            "type": "keyword",    // 不可被分词查询
            "index": true
        },
        键3: {
            "type": "keyword",
            "index": false        // 不能被查询和索引
        },
        ......
    }
}

Talk is cheap, show me the code —— 薪火工作室箴言

散是满天星,聚是兴薪之火。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值