元数据字段

文档标识相关元数据字段

_index

  • 当执行多索引查询时,可能需要添加特定的一些与文档有关联的索引的子句。
  • _index 字段可以用在 term、terms 查询,聚合(aggregations)操作,脚本(script)操作以及用来排序(sort)。

GET index_1,index_2/_search
{
  "query": {
    "terms": {
      "_index": ["index_1", "index_2"]
    }
  },
  "aggs": {
    "indices": {
      "terms": {
        "field": "_index",
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_index": {
        "order": "asc"
      }
    }
  ],
  "script_fields": {
    "index_name": {
      "script": "doc[‘_index‘]"
    }
  }
}

_index field

_type

  • _type 可以用来让针对具体 type 的搜索更加快。
  • _type 字段可以用在 querys、aggregations、scripts 以及 sorting。

GET my_index/_search/type_*
{
  "query": {
    "terms": {
      "_type": [ "type_1", "type_2" ]
    }
  },
  "aggs": {
    "types": {
      "terms": {
        "field": "_type",
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_type": {
        "order": "desc"
      }
    }
  ],
  "script_fields": {
    "type": {
      "script": "doc[‘_type‘]"
    }
  }
}

_type field

原始信息相关元数据字段

_source

字段说明

  • _source 字段存放的是文档的原始 JSON 信息
  • _source 字段不被 indexed ,不过被 stored ,所以可以通过 get 或 search 取得该字段的值。

禁用_source字段

  • _source 字段可以在 mapping 设置中禁用
  • 如果禁用 _source 字段将会有一些其它影响,比如:update API 将无法使用等等。

PUT tweets
{
  "mappings": {
    "tweet": {
      "_source": {
        "enabled": false
      }
    }
  }
}

enable _source

_source排除特定字段

  • 在 _source 的 mapping 设置中可以通过 includes 和 excludes 参数来包含或排除特定字段
  • 包含或排除的字段,需要以 plain 格式的 field 名称,名称支持通配符。

PUT logs
{
  "mappings": {
    "event": {
      "_source": {
        "includes": [
          "*.count",
          "meta.*"
        ],
        "excludes": [
          "meta.description",
          "meta.other.*"
        ]
      }
    }
  }
}

include _source

索引操作相关元数据字段

_all

字段说明

  • _all 字段把其他所有字段的内容存储到一个大的字符串中,不管其它字段是什么数据类型,在 _all 中都被当作字符串处理。
  • 每个 index 只有一个 _all 字段。
  • 该字符串会被 analyzed 和 indexed,但不会 store(存储)。可以被搜索,但无法用来恢复。
  • _all 字段也和普通字符串字段一样可以接收:analyzer、term_vectors、index_options 和 store 等参数。
  • 生成 _all 字段是有资源消耗的,会消耗 CPU 和 disk 存储。

GET my_index/_search
{
  "query": {
    "match": {
      "_all": "john smith 1970"
    }
  }
}

_all query

_all字段查询

  • query_string 和 simple_query_string 查询操作,默认就是查询 _all 字段,除非自己明确指定。

GET _search
{
  "query": {
    "query_string": {
      "query": "john smith 1970"
    }
  }
}

_all query_string

禁用_all字段

  • _all 字段可以在 mapping 设置中完全禁用,如果禁用,query_string 和 simple_query_string 查询操作需要指定默认字段才可用。

PUT my_index
{
  "mappings": {
    "my_type": {
      "_all": {
        "enabled": false
      },
      "properties": {
        "content": {
          "type": "string"
        }
      }
    }
  },
  "settings": {
    "index.query.default_field": "content"
  },
}

enable _all

_all排除特定字段

  • 字段通过 mapping 设置可以通过 include_in_all 参数控制该字段否包含在 _all 字段。

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "date": {
          "type": "date",
          "include_in_all": false
        }
      }
    }
  }
}

include_in_all

_all字段存储

  • _all 字段可以通过参数 store 来设置其是否存储。

PUT myindex
{
  "mappings": {
    "mytype": {
      "_all": {
        "store": true
      }
    }
  }
}

store _all

_field_names

字段说明

  • _field_names 字段是用来存储文档中所有非 null 字段的字段名称的。
  • 该字段供 existsmissing 查询使用,来查询某个文档中是否包含或不包含某个字段。

GET my_index/_search
{
  "query": {
    "terms": {
      "_field_names": [ "title" ]
    }
  },
  "aggs": {
    "Field names": {
      "terms": {
        "field": "_field_names",
        "size": 10
      }
    }
  },
  "script_fields": {
    "Field names": {
      "script": "doc[‘_field_names‘]"
    }
  }
}

_field_names

路由相关元数据字段

_parent

字段说明

  • 在同一个 index 中,可以通过设置 type 的父子关系来建立文档之间的父子关系。
  • 父子 type 必须是不同的 type。
  • 指定的 parent type 必须要是还不存在的,已存在的 type 不能作为其它 type 的 parent type。
  • 父子关系的 doc 必须被索引到相同的 shard 上,子文档通过参数 parent 参数来作为其 routing 来保证索引到相同分片。

PUT my_index
{
  "mappings": {
    "my_parent": {},
    "my_child": {
      "_parent": {
        "type": "my_parent"
      }
    }
  }
}

_parent

_routing

  • _routing 字段用来确定文档索引的分片:shared_num = hash(routing) % num_primary_shards
  • 默认的 _routing 是文档的 _id 或 _parent 的 ID。
  • 通过 routing 参数可以自定义 _routing 的值。

GET my_index/_search
{
  "query": {
    "terms": {
      "_routing": [ "user1" ]
    }
  },
  "aggs": {
    "Routing values": {
      "terms": {
        "field": "_routing",
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_routing": {
        "order": "desc"
      }
    }
  ],
  "script_fields": {
    "Routing value": {
      "script": "doc[‘_routing‘]"
    }
  }
}

_routing

时间: 2024-08-29 14:46:22

元数据字段的相关文章

MySQL修改表、字段、库的字符集及字符集说明

修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET u

对象存储元数据

元数据是描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来?支持如指示存储位置.历史数据.资源查找.文件记录等功能.EOS元数据有两种元数据:系统元数据和用户定义的元数据. 对于 Bucket 中的每个对象,EOS 都会保存该 Object 的系统元数据.EOS 根据需要处理这些系统元数据.例如,EOS将保存对象创建日期和对象大小,并将这些信息用作对象管理的一部分.下表提供了系统定义的元数据列表以及您是否可以更新它: 上传对象时,可以将元数据指定

ElasticSearch 基础(4) - Mapping

一.Mapping概述 为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成Full-text或者精确的字符串值. ES需要知道每个字段里面都包含了什么类型.这些类型和字段的信息存储(包含)在映射(mapping)中. 索引中每个文档都有一个类型(type).每个类型都拥有自己的映射(mapping)或者模式定义(schema definition). 一个映射定义了字段类型,每个字段的数据类型,以及字段被Elasticsearch处理的方式.映射还用于设置关联到类型上的元数据

Reading and Writing Logs——读写日志

Android日志系统提供了收集和查看系统调试输出的机制.Logcat转储了系统消息的日志,包括当模拟器抛出一个错误时的堆栈信息和你在应用中使用Log类写的信息.你可以通过ADB或在DDMS中运行LogCat,它允许你实时阅读信息. Log类 Log是一个日志记录类,可以在代码中使用来打印信息到LogCat.常用的记录方法包括: v(String, String) (verbose) d(String, String) (debug) i(String, String) (information

mysql学习之-字符集选定,修改。

基础概念: 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等:编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码:字符集(Character Set)是指字符和编码对组成的集合.字符序(Collation)是指在同一字符集内字符之间的比较规则.MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头:以_ci(表示大小写不敏感)._cs

android adb 命令详解

ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设备连接状态 ----------- adb get-serialno  获取设备的ID和序列号<serialNumber> adb devices  查询当前计算机上连接那些设备(包括模拟器和手机) adb get-state  查看模拟器/设施的当前状态. ----------发送命令到设备 -

information_schema系列之字符集校验(CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY)

1:CHARACTER_SETS 首先看一下查询前十条的结果: [email protected] [information_schema]>select * from CHARACTER_SETS order by MAXLEN DESC limit 10; +--------------------+----------------------+---------------------------------+--------+ | CHARACTER_SET_NAME | DEFAULT

学做网站一:环境搭建

今天开始学习网站制作,为了练习编程基本功和面向对象程序设计能力. 要做的是一个众筹网站,网上找到了一份参考代码,准备对着重新做一遍,不用框架.那么第一步就是搭建环境,让参考代码跑起来了. 参考代码使用CI框架开发,数据库是MySQL.在windows环境下我使用WAMP软件很方便地安装了Apache+PHP+MySQL. 然后开始将源码中的SQL文件导入到我的数据库里,但是出现了乱码现象,百度一下发现是字符集问题.字符集设置指定了字符的编码方式,中文数据一般以utf8方式编码与MYSQL的默认字

mysql编码问题总结

网上查了一些mysql编码相关的资料,在这里整理下,不对的地方欢迎各位批评指正. 1. mysql字符集相关的变量: - character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层字符集 – character_set_results:查询结果字符集 – character_set_database:当前选中数据库的默认字符集 – character_set