Elasticsearch深入学习 (四) 文档查询

一、创建索引

创建索引,并指定title字段的类型为keyword,用于精确查询

PUT /my_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  },
  "mappings": {
    "properties": {
      "title": { "type": "keyword" },
      "description": { "type": "text" },
      "timestamp": { "type": "date" }
    }
  }
}

二、插入文档
#插入文档,并指定文档ID为1
PUT /my_index/_doc/1
{
  "title": "Example Document1",
  "description": "This is an example document",
  "timestamp": "2023-06-27T10:00:00"
}
三、查询文档

根据文档ID查询

GET /my_index/_doc/1

 根据文档字段内容查询

1、简单查询

Match 查询:根据指定字段的内容进行全文匹配查询。例如,搜索description字段包含关键词 "example" 的文档

GET /my_index/_search
{
  "query": {
    "match": {
      "title": "Example"
    }
  }
}

Term 查询:根据指定字段的精确值进行匹配查询。例如,搜索title字段为 "Example Document1" 的文档。(精确查询的字段类型需为 keyword )

GET /my_index/_search
{
  "query": {
    "term": {
      "title": "Example"
    }
  }
}

2、复合查询

Bool 查询:通过组合多个查询条件,使用逻辑运算符(如 must、should、must_not)来进行复合查询

  • must:所有的 must 条件都必须满足,相当于逻辑上的 AND 操作。
  • should:至少一个 should 条件满足即可,相当于逻辑上的 OR 操作。
  • must_not:必须不满足 must_not 条件,相当于逻辑上的 NOT 操作。

GET /my_index/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "title": "Example"
          }
        },
        {
          "match": {
            "description": "example"
          }
        }
      ]
    }
  }
}

Match Phrase 查询

用于精确匹配包含指定短语的文档。它会将查询字符串视为一个完整的短语,确保文档中的某个字段包含完全相同的短语

GET /my_index/_search
{
  "query": {
    "match_phrase": {
      "description": "This is an example document"
    }
  }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值