elaticseach
可视化界面:Kibana
1.jdk环境
2.elacsticseach,默认1g内存,可以修改
3.ik smart 分词器
增:put/post /索引/类型/id
删 :delect /索引
改:put/post /索引/类型/id
查:GET /索引/类型/id
/索引/类型/id?version=1 根据版本查询
/索引/类型/_seach 查询所有类型数据
/索引/类型/_mget {
'ids':["1","2"] 查询多个id值
}
/索引/类型/id?q=age:21 查询年龄21岁
/索引/类型/id?q=age[30 TO 60] 查询30-60岁之间的
/索引/类型/id?q=age[30 TO 60] &sort=age:desc 降序排列查询
/索引/类型/id?q=age[30 TO 60] &sort=age:desc&from=0&size=2 查询30-60岁之间的前面两条数据
DSL查询: term和match
term:精确查询
/索引/类型/_seach { ”query":{ "term":{ "name":"xiaohong" } } }
like:模糊查询
match:会对“奥迪”进行字段分词查询
/索引/类型/_seach
分页查询两条
{
"form":0,
"size":2,
”query":{
"match":{
"name":"奥迪"
}
}
}
9200和9300端口区别:
9300:内部通讯,内部集群走tcp协议
9200:外部通讯,rsetful接口
倒排索引:
利用关键词(分词器)进行查询
分词设备:
引入国内-es-ik插件
https://github.com/medcl/elasticsearch-analysis-ik/releases
POST _analyze
{
"analyzer":"ik_smart",
"text":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
}
自定义关键词:
在ik文件夹的config里IKAnalyzer.cfg.xml添加扩展
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">文件路径.dic</entry>
7版本以后类型(type)移除
string 类型分text(可以分词查询)和keyword(不能分词查询)
整修默认是:long类型
可以定义文档映射类型(一般默认文档)
查看类型:GET /test/_mapping/user
更改类型:/test/_mapping/user{
修改的类型
}
分布式集群服务:分主分片和副分片为了容错性高
会将单台索引文件分片到集群中
创建索引后,主分片数量定义好后不能修改数量(低层路由算法:p= shard = hash(routing==文档id)%主分片) p1=1%3=1
p2=2%3
p3=3%3
副分片分配后可以修改数量
主分片和副分片不能再同一个节点上。
不定义副分片数量时:主分片和副分片数量相等。
水平扩展:主分片+副分片要均摊分配到不同的节点上(3个节点,6个主+副分片,6/3每个节点分两个,这种宕机2个节点就会出现数据丢失,所以定义(节点的平方)-主分片=副分片个数,总共分片是节点的平方)

浙公网安备 33010602011771号