21.Elasticsearch索引基础查询-3

21.1 短语搜索

  • 精确匹配
GET /megacorp/employee/_search
{
  "query" : {
    "match_phrase" : {
      "about" : "rock climbing"
    } 
  }
}

21.2 高亮搜索

GET /megacorp/employee/_search
{
  "query" : {
    "match_phrase" : {
      "about" : "rock climbing"
    }
  },
  "highlight": {
    "fields" : {
      "about" : {}
    } 
  } 
}
{
  ...
  "hits": {
    "total": 1,
    "max_score": 0.23013961,
    "hits": [
      {
        ...
        "_score": 0.23013961,
        "_source": {
          "first_name": "John",
          "last_name": "Smith",
          "age": 25,
          "about": "I love to go rock climbing",
          "interests": [ "sports", "music" ]
        },
        "highlight": {
          "about": [
            "I love to go rock climbing" 
          ] 
        } 
      } 
    ] 
  } 
}

21.3 query string类型

  • 此查询使用语法根据运算符(例如AND或)来解析和拆分提供的查询字符串NOT
    • 然后查询在返回匹配的文档之前独立分析每个拆分的文本。
  • 可以使用该query_string查询创建一个复杂的搜索,其中包括通配符,跨多个字段的搜索等等
    • 尽管用途广泛,但查询是严格的,如果查询字符串包含任何无效语法,则返回错误
  • 例如:
GET /test-dsl-match/_search
{
  "query": {
    "query_string": {
      "query": "(lazy dog) OR (brown dog)",
      "default_field": "title"
    }
  }
}

21.4 分词匹配:term

  • 最常见的根据分词查询
GET /test-dsl-term-level/_search
{
  "query": {
    "term": {
      "programming_languages": "php"
    }
  }
}

21.5 正则:regexp

  • 通过正则表达式查询
    • 以"Jan"开头的name字段
GET /test-dsl-term-level/_search
{
  "query": {
    "regexp": {
      "name": {
        "value": "Ja.*",
        "case_insensitive": true
      }
    }
  }
}

大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(21.Elasticsearch索引基础查询-3)