• Elasticsearch系列(4):基本搜索


    空搜索

    搜索API的最基础的形式是没有指定任何查询的空搜索 ,它简单地返回集群中所有索引下的所有文档,如下命令:

    GET /_search

    返回如下结果:

    image

    查询结果解释:

    1,hits

    返回结果中最重要的部分是 hits ,它 包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档。

    2,took

    took 值告诉我们执行整个搜索请求耗费了多少毫秒。

    3,timeout

    timed_out 值告诉我们查询是否超时。默认情况下,搜索请求不会超时。 如果低响应时间比完成结果更重要,你可以指定 timeout 为 10 或者 10ms(10毫秒),或者 1s(1秒)。以下命令:

    GET /_search?timeout=10ms

    查询字符串

    查询字符串搜索非常适用于通过命令行做即席查询,比如我们的需求是:

    1. system_code字段包含Ubtrip。
    2. message字段包含云凯或者本京。

    所以查询字符串为:?q=system_code:Ubtrip+message:(云凯 本京),所以完整的查询命令为:

    GET /log/debuglog/_search?q=system_code:Ubtrip+message:(云凯 本京)

    查询表达式

    相较查询字符串,查询表达式更灵活,更强大。

    一个查询表达式的典型结构为:

    {
        QUERY_NAME: {
            ARGUMENT: VALUE,
            ARGUMENT: VALUE,...
        }
    }

    如果是针对某个字段,那么它的结构为:

    {
        QUERY_NAME: {
            FIELD_NAME: {
                ARGUMENT: VALUE,
                ARGUMENT: VALUE,...
            }
        }
    }

    比如:使用查询表达式来查询所有数据,使用到了match_all查询,表达式命令为:

    GET /log/debuglog/_search
    {
      "query": {
        "match_all": {}
      }
    }

    查询结果为:

    image

    比如:我要查询system_code字段包含Ubtrip的数据,使用到了match查询,查询表达式语句为:

    GET /log/debuglog/_search
    {
      "query": {
        "match": {
          "system_code": "Ubtrip"
        }
      }
    }

    查询结果为:

    image

  • 相关阅读:
    C语言I博客作业02
    第一次作业
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    课程目标
    具体方面
  • 原文地址:https://www.cnblogs.com/mcgrady/p/9025990.html
Copyright © 2020-2023  润新知