elasticsearch学习(二)

2022-09-08 11:30:23 浏览数 (3)

elasticsearch学习(二)

常用查询语句

全部匹配match_all

方式一

代码语言:javascript复制
GET /website/_search
代码语言:javascript复制
GET /website/_search
{
  "query":{
    "match_all": {    
    }
  }
}

模糊查询match

或查询

代码语言:javascript复制
GET /website/_search
{
  "query":{
    "match": {
      "text":{
        "query":"Just blog",
        "operator": "or"
      }
    }
  }
}

GET /website/_search
{
  "query":{
    "match": {
      "text":"Just blog"
    }
  }
}

与查询

代码语言:javascript复制
--- Just和blog都存在才匹配
GET /website/_search
{
  "query":{
    "match": {
      "text":{
        "query":"Just blog",
        "operator": "or"
      }
    }
  }
}

匹配精度

代码语言:javascript复制
---50% 即三个词中有一个匹配即可
GET /website/_search
{
  "query":{
    "match": {
      "text":{
        "query":"Just blo1g 1out",
        "minimum_should_match": "50%"
      }
    }
  }
}

term查询(查询内容不会被分词)

  • 示例

与match的区别

match_phrase

  • 特点:会对查询内容进行分词,且要求待查询字段之中的所有term都必须和match_phase具有相同的顺序
  • 示例

query_string

  • 特点:与match_phrase类似,只不过不会要求顺序
  • 示例

排序

示例

代码语言:javascript复制
GET /website/_search
{
  "query": {
    "query_string": {
      "fields": [
        "title"
      ],
      "query": "first blog"
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}

分页

示例

代码语言:javascript复制
GET /website/_search
{
  "query": {
    "query_string": {
      "fields": [
        "title"
      ],
      "query": "first blog"
    }
  },
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    }
  ],
  "from": 0,
  "size": 2
}

显示指定字段

示例

代码语言:javascript复制
GET /website/_search
{
  "query": {
    "query_string": {
      "fields": [
        "title"
      ],
      "query": "first blog"
    }
  },
  "_source": [
    "text",
    "title"
    ]
}

高亮

示例

代码语言:javascript复制
GET /website/_search
{
  "query": {
    "query_string": {
      "fields": [
        "title"
      ],
      "query": "first blog"
    }
  },
  "highlight": {"fields": {"title": {}}}
}

其他的用到的时候再补充.....

0 人点赞