木子李的个人博客

Good Luck To You!

Elasticsearch中的查询(查询一)

三、标准查询语句使用

根据一个字段进行检索,假如我们要搜索content包含ES的文档,我们的查询语句可以这样写

GET zfc-doc-000001/_search
{
  "query": {
    "match":{
      "content":"ES"
    }
  }
}

上面这个语句的意思简单理解就是查询content字段中包含ES的文档。在深一层次来看,首先查看content字段的类型,通过查看上面的创建索引语句可以知道,content字段定义的是text类型,所以Elasticsearch会对content字段进行分词检索,返回文档中出现es的,除了上面这种写法外还可以使用如下几种方式进行检索

# 分词匹配es或者crud的文档
GET zfc-doc-000001/_search
{
  "query": {
    "match":{
      "content":"ES crud"
    }
  }
}
# 短语查询分词es
GET zfc-doc-000001/_search
{
  "query": {
    "match_phrase":{
      "content":"es"
    }
  }
}
# 前缀检索分词es
GET zfc-doc-000001/_search
{
  "query": {
    "prefix":{
      "content":"es"
    }
  }
}
# 模糊匹配分词es
GET zfc-doc-000001/_search
{
  "query": {
    "fuzzy":{
      "content":"es*"
    }
  }
}

为了查询结果的更精确,增加title字段为ES的约束条件,需要注意大小写,因为title字段类型为keyword,不区分大小写的,所以查询语句可以这样写

该语句返回content字段中分词匹配词语ES(不区分大小写)的文档或者title字段精确匹配ES的文档

GET zfc-doc-000001/_search
{
  "query": {
    "multi_match": {
      "query": "ES",
      "fields":["content","title"]
    }
  }
}

一个简单的检索语句通过上述几种方式即可实现了,但是实际工作中,肯定还是用到分词器的,下面就以常用的IK分词器进行说明

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年3月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3