elasticsearch先实践再理论 三 查询

本文介绍了Elasticsearch的查询操作,包括无条件查询、分页查询、布尔查询及条件组合。讨论了Elasticsearch的映射、分析器、分词器的功能,以及term与match查询的区别。还涉及了排序、搜索类型、评分计算和索引重建等高级话题,揭示了Elasticsearch查询背后的机制。
摘要由CSDN通过智能技术生成

之前的查询直接指定id,这里的查询只是输入条件

先来一个没有条件的查询:

返回的结果很容易理解,hits的返回的文档数组,_source是文档内容,_score是这此query中该文档的得分,得分越高越靠前。

若user索引中文档有1w个,都返回吗?当然不是,es默认返回10条,也可以自己控制:

{
     "from":1,
     "size":1
}

上面的结果是查询第2页,每页1条(mysql limit一模一样)

空查询等同于在请求体中添加如下json:

{
    "query": {
        "match_all": {}
    }
}

加上一个查询条件:

{
    "query": {
        "match": {
        	"first_name":"Douglas"
        }
    }
}

多个查询条件如何传参呢?使用bool把多个条件嵌套:

{
	"query":{
		 "bool": {
	        "must":     { "match": { "first_name": "Douglas" }},
	        "must_not": { "match": { "last_name":  "mary" }},
	        "should":   { "match": { "about": "abc" }},
	        "filter":   { "range": { "age" : { "gt" : 30 }} }
    	}
	}
}

bool查询里面可以有下面几种key

must:必须满足

must_not:必须不满足

should:满足则加分(影响排名)

filter:不满足则过滤掉

进一步了解查询前先看一下映射:

put操作后es会帮助你把字段做映射,就是识别这个字段类型,string、object、date、integer等等,让我们先put一个user

查看映射:GET http://localhost:9200/user/_mapping/doc

age->long birthday->date happy->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值