Priliminary
- Docker容器内的app 是直接运行于宿主的内核
- Docker 出现的原因:环境和配置------->程序水土不服, 互联网高并发,大流量
- 开源的应用容器引擎---->应用依赖包—>可移植的镜像---->创建虚拟机的软件
- 一个 ES 集群可以 包含多个 索引 ,相应的每个索引可以包含多个类型 。这些不同的类型存储着多个 文档 ,每个文档又有多个属性
- 索引:数据库
- 类型:表
- 属性:字段
- 文档:数据
- Query DSL---------结构化查询(DSL)语法
初次使用
启动DOCKER 中的ES镜像
docker run -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name dreamer -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.7.0
docker run 参数说明:
-p 9200:9200 : 将虚拟机<宿主机or 本地>9200端口映射到 ElasticSearch 的9200端口(web通信默认使用9200端口)
-p 9300:9300 : 将虚拟机9300端口映射到 ElasticSearch 的9300端口(分布式情况下,各个节点之间通信默认使用9300端口)
number_of_shards (默认一个索引被分配5个主分片)
number_of_replicas (每个主分片都有一个复制分片 )
http://****:9200/bank/account/3
{
"_index": "bank",
"_type": "account",
"_id": "3",
"_version": 1,
"_seq_no": 158,
"_primary_term": 1,
"found": true,
"_source": {
"account_number": 3,
"balance": 44947,
"firstname": "Levine",
"lastname": "Burks",
"age": 26,
"gender": "F",
"address": "328 Wilson Avenue",
"employer": "Amtap",
"email": "levineburks@amtap.com",
"city": "Cochranville",
"state": "HI"
}
}
获取文档的age,firstname,address属性,并美化显示
http://****:9200/bank/account/3?_source=age,firstname,address&pretty
{
"_index": "bank",
"_type": "account",
"_id": "3",
"_version": 1,
"_seq_no": 158,
"_primary_term": 1,
"found": true,
"_source": {
"firstname": "Levine",
"address": "328 Wilson Avenue",
"age": 26
}
}
_score字段
相关性得分(relevance score),
它衡量了文档与查询的匹配程度
。默认的,返回的结果中关联性最大的文档排在首位;
这种情况下,我们没有指定任何查询
,所以所有文档的相关性是一样的
/bank/_all/3?_source=age,firstname,address&pretty
_all 不能在index位置使用
/bank/account/3?_all=firstname (错)
/bank/account/_search?from=0&size=4
请求参数:
from:0
size:4
效果:返回4条数据
多索引和多类型
格式1: /index/_search, 如: /foods/_search
格式2: /index1, index2/_search
格式3 : /a*, b*/_search 使用*通配符
格式4: /_index1/_type/_search
格式5: /index1, index2/_type1, _type2/_search
格式6: /_all/_type1, _type2/_search
Q&A
- _all 全字段搜索
- _search