概要
基本上这些,有需要的再补充:
创建索引时的关键字段
- number_of_shards: 索引中主分片的数量,决定了数据分布的广度和横向扩展的能力。一旦设置好之后不能改变。
- number_of_replicas: 每个主分片拥有的副本分片的数量,用于提供数据冗余和提高查询的并发能力。
- mappings: 定义索引中字段名和字段数据类型的容器,可以看作是Elasticsearch中的“表结构”。
文档操作中的关键字段
- _doc: 表示文档类型,在7.x之前的版本中Elasticsearch支持多种类型,但在7.x之后已被弃用,统一使用_doc。
- _update: 用于更新现存文档的关键字。
- doc: 在更新操作中,表示需要被更新的字段和它们新的值。
查询操作中的关键字段
- query: 包含了所有查询条件的容器。
- match: 一个全文搜索的查询,匹配指定字段中包含的文本。
- term: 用于精确值匹配,不分析字段内容,用于不分词的字段或精确值查询。
- bool: 用于组合多个查询子句,并可以通过must(必须匹配)、should(至少匹配一个)、must_not(必须不匹配)、filter(过滤且不计算得分)等来定义查询逻辑。
- filter: 类似于查询,但它不计算得分而只是过滤数据,这通常有助于提高性能。
- range: 用于匹配指定字段值处于特定范围的文档。
- gte, lte: 分别代表范围查询中的“大于等于”和“小于等于”。
分页和排序中的关键字段
- from: 用于分页,表示从哪个文档开始返回。
- size: 也用于分页,表示返回多少个查询结果。
- sort: 用于指定根据哪个字段以什么样的顺序来排序结果。
高亮查询的关键字段
- highlight: 用于配置结果高亮显示的容器。
- fields: 指定哪些字段需要高亮显示。
聚合操作的关键字段
- aggs (或aggregations): 用于配置聚合操作的容器。
- terms: 一个典型的桶(buckets)聚合,用来创建基于某个字段的不同值的桶。
- avg, sum, min, max: 各种度量聚合类型,用来计算平均值、求和、最小值、最大值等。
每个字段和字段名在Elasticsearch查询DSL中都有特定的目的和行为。查询的编写需要对这些关键字段及其用法有深刻的了解。在构造查询时,这些字段以JSON对象的形式组合在一起,形成对Elasticsearch数据的精确和高效查询。
操作语句
索引操作:
1、创建索引 (Create an Index)
PUT /my_index // 使用PUT动作创建一个名为"my_index"的索引
{
"settings": {
// "settings"类别用于设定索引相关的具体配置
"number_of_shards": 1, // "number_of_shards"指定了索引分片的数量
"number_of_replicas": 1 // "number_of_replicas"指定了每个分片的副本数量
},
"mappings": {
// "mappings"类别用于定义索引中字段的名称和类型
"properties": {
// "properties"定义了索引包含的字段及其数据类型
"title": {
"type": "text" }, // "title": 字段名,类型为"text",适用于全文搜索
"date": {
"type": "date" }, // "date": 字段名,类型为"date",存储日期
"views": {
"type": "integer" } // "views": 字段名,类型为"integer",存储整数
}
}
}
2、查看索引 (Get Index Information)
GET /my_index // 使用GET动作获取名为"my_index"的索引信息
3、更新索引设置 (Update Index Settings)
PUT /my_index/_settings // 使用PUT动作更新名为"my_index"的索引设置
{
"settings": {
"number_of_replicas": 2 // "number_of_replicas"更新索引副本的数量为2
}
}
4、删除索引 (Delete an Index)
DELETE /my_index // 使用DELETE动作删除名为"my_index"的索引
5、删除索引中的所有数据(Delete By Query)
POST /my_index/_delete_by_query // 使用POST动作删除满足查询条件的索引内数据
{
"query": {
// "query"定义删除操作的查询条件
"match_all": {
} // "match_all"查询匹配索引中的所有文档,即删除所有数据
}
}
6、关闭索引 (Close an Index)
POST /my_index/_close // 使用POST动作关闭名为"my_index"的索引