Elasticsearch的一些基础使用

以前整理了一份关于工作时elasticsearch的简单日志,有的时候偶尔能用到,放到csdn上,这个只适合用过了突然忘了的时候查找

put 更新
post 提交
get 查询
delete 删除

explain GET /gb/tweet/_validate/query?explain 查询不合法原因

query 评分查询
filter 过滤查询

match 分词查询
match_phrase 包含所有分词的查询
slop :1 可以少匹配一个(或多个)分词
multi_match 多字段匹配,满足一个即可
match_all 查询所有

type: best_fields 完全匹配评分比较高
type: most-fields 多字段匹配评分较高
type: cross_fields 分词词汇分配到不同字段

term 完全匹配
"value"可以查数组
terms 多关键词完全匹配
bool 组合查询
must[] 必须匹配
must_not 必须不匹配
should 满足这些语句中的任意语句,将增加 _score ,否则,无任何影响。它们主要用于修正每个文档的相关性得分

fuzzy 模糊查询
value 查询关键字
boost 查询权值,默认1.0
min_similarity:设置匹配的最小相似度,默认值0.5
prefix_length:指明区分词项的共同前缀长度,默认是0

orderTime 时间字段查询

GET _nodes?filter_path=.mlockall 查询集群节点是否禁用内存交换(swapping)
GET _nodes/stats/process?filter_path=
.max_file_descriptors 查询集群节点的最大文件描述符

index:
no 不索引
analyzied 分词索引
not_analyzied 关键词索引

store:
yes 存储
no 不存储

_source: 默认存在,索引原始内容
enabled :true / false
exclides 不包含的字段
includes 包含的字段

_all域:默认定义
enabled :false
include_in_all:false 不加入_all域

settings是修改分片和副本数的。
“settings”: {
“analysis”: { # 分词设置,可以自定义
“char_filter”: {}, #char_filter 关键字
“tokenizer”: {}, #tokenizer 关键字
“filter”: {}, #filter 关键字
“analyzer”: {} #analyzer 关键字
}
//静态设置:只能在索引创建时或者在状态为 closed index(闭合的索引)上设置

#使用时去index即可
index.number_of_shards //主分片数,默认为5.只能在创建索引时设置,不能修改
index.shard.check_on_startup //是否应在索引打开前检查分片是否损坏,当检查到分片损坏将禁止分片被打开
false //默认值
checksum //检查物理损坏
true //检查物理和逻辑损坏,这将消耗大量内存和CPU
fix //检查物理和逻辑损坏。有损坏的分片将被集群自动删除,这可能导致数据丢失

index.routing_partition_size //自定义路由值可以转发的目的分片数。默认为 1,只能在索引创建时设置。此值必须小于index.number_of_shards

index.codec //默认使用LZ4压缩方式存储数据,也可以设置为 best_compression,它使用 DEFLATE 方式以牺牲字段存储性能为代价来获得更高的压缩比例。

//动态设置
index.number_of_replicas //每个主分片的副本数。默认为 1。
index.auto_expand_replicas //基于可用节点的数量自动分配副本数量,默认为 false(即禁用此功能)
index.refresh_interval //执行刷新操作的频率,这使得索引的最近更改可以被搜索。默认为 1s。可以设置为 -1 以禁用刷新。
index.max_result_window //用于索引搜索的 from+size 的最大值。默认为 10000
index.max_rescore_window // 在搜索此索引中 rescore 的 window_size 的最大值
index.blocks.read_only //设置为 true 使索引和索引元数据为只读,false 为允许写入和元数据更改。
index.blocks.read // 设置为 true 可禁用对索引的读取操作
index.blocks.write //设置为 true 可禁用对索引的写入操作。
index.blocks.metadata // 设置为 true 可禁用索引元数据的读取和写入。
index.max_refresh_listeners //索引的每个分片上可用的最大刷新侦听器数

Mapping,就是对索引库中索引的字段名称及其数据类型进行定义,类似于mysql中的表结构信息。不过es的mapping比数据库灵活很多,它可以动态识别字段。一般不需要指定mapping都可以,因为es会自动根据数据格式识别它的类型,如果你需要对某些字段添加特殊属性(如:定义使用其它分词器、是否分词、是否存储等),就必须手动添加mapping。

analyzer :分词器
whitespace 空格分隔符
simple
stop 默认
keyword不分词

“dynamic”:默认true 插入新数据 可以作为检索条件,会改变表结构
“dynamic”:false 可以插入新列数据,但不能作为检索条件,不会改变表结构
“dynamic”:“stric”不符合表结构,不允许插入

字段类型概述
一级分类 二级分类 具体类型
核心类型 字符串类型 text,keyword
整数类型 integer,long,short,byte
浮点类型 double,float,half_float,scaled_float
逻辑类型 boolean
日期类型 date
范围类型 range
二进制类型 binary
复合类型 数组类型 array
对象类型 object
嵌套类型 nested
地理类型 地理座标类型 geo_point
地理地图 geo_shape
特殊类型 IP类型 ip
范围类型 completion
令牌计数类型 token_count
附件类型 attachment
抽取类型 percolator

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章