- 浏览: 52091 次
- 性别:
- 来自: 北京
最新评论
-
zhumingpeng:
Error creating bean with name ' ...
mybatis 学习之多数据源整合 -
herolhl:
你好,还在吗?想请教下,现在我获得了oauth_verifie ...
导出yahoo,linkedin,gmail,hotmail,contacts 联系人 api java -
Mybeautiful:
fenshen6046 写道Mybeautiful 写道请教下 ...
导出yahoo,linkedin,gmail,hotmail,contacts 联系人 api java -
fenshen6046:
Mybeautiful 写道请教下Linkedin的问题,好像 ...
导出yahoo,linkedin,gmail,hotmail,contacts 联系人 api java -
Mybeautiful:
请教下Linkedin的问题,好像只能得到 firstName ...
导出yahoo,linkedin,gmail,hotmail,contacts 联系人 api java
文章列表
获取所有文档
GET /_search
{
"query": {
"match_all": {}
}
}获取所有文档并且给一个指定的分数GET /_search
{
"query": {
"match_all": { "boost" : 1.2 }
}
}
相反下面不获取任何数据GET /_search
{
"query": {
"match_none&q ...
查询子句的行为取决于他是在查询上下文中使用,还是在筛选器中使用:
查询上下文:这个查询子句除了决定是否匹配这个文档外,还要知道这个文档和这个查询的匹配程度。所以他会计算一个匹配分数,而分数也取决于其他文档。
过滤上下文:在过滤器上下文中,更多的是回答这个文档是否符合这个请求。结果只有两个是或者不是。所以也就不会涉及到分数计算。更多的,过滤器会涉及到结构化的数据。如:时间是否在2015和2016之间。
为了性能考虑,es会对经常使用的过滤器进行缓存操作。
如下会搜索标题中包含search,正文包括elasticsearch。且状态精确的是published,而且发布时间是2015.1.1之后的数据 ...
es的搜索请求体是使用json来定义的。包括两部分:
叶子:具体的领域值比较
复合查询子句:包括其他叶子或者其他的符合查询子句,来组成更加复杂的请求
1集群健康
查看当前集群的健康状态
GET _cluster/health同样也可以查看某几个索引的健康状态GET /_cluster/health/test1,test2
2集群状态
查看当前集群的整体状态
$ curl -XGET 'http://localhost:9200/_cluster/state'默认查看的状态是主机器节点的状态,如果想查看最后的集群状态(如调试),可以直接访问某个机器节点并且添加参数local=true
3统计信息
查看集群的统计信息,包括内存,机器节点个数,空间大小等各种信息
curl -XGET 'http://localhost:9200/_cluste ...
大部分的集群接口都可以指定具体机器节点来执行某些操作(通过节点名称,id,ip,或者自定义的属性)# Local
GET /_nodes/_local
# Address
GET /_nodes/10.0.0.3,10.0.0.4
GET /_nodes/10.0.0.*
# Names
GET /_nodes/node_name_goes_here
GET /_nodes/node_name_goes_*
# Attributes (set something like node.attr.rack: 2 in the config)
GET /_nodes/rack:2
...
1创建索引
每个索引都会有一些相关配置
PUT twitter
{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
}
如上设置数据节点为3个(默认5个),副本2个(默认1个)。
创建索引配置的时候也可以设置索引内部的数据定义
PUT test
{
"settings&q ...
提供一些内部信息,可以实时监控
/_cat请求可以列出所有可以使用的请求地址。
所有请求可以添加参数v,使输出更加可读。如GET /_cat/master?v
所有请求都可以接受help的请求参数,显示所有列的说明信息。如 GET /_cat/master?help
所有请求可以接受参数h来确定希望哪些列进行展示GET /_cat/nodes?h=ip,port,heapPercent,name
数字格式化。3.5mb表示3763212。同样在系统中可能会两种情况都使用。curl '192.168.56.10:9200/_cat/indices?bytes=b'
如果希望
替换时间格式可以 ...
1查看别名
查看别名以及过滤器和路由信息如GET /_cat/aliases?v
如果希望知道某个别名信息可以使用/_cat/aliases/alias1
2分配
查看集群或者某个索引的文档数量
GET /_cat/count?v
GET /_cat/count/twitter?v
3文档数量
查看集群或者某个索引的文档数量
GET /_cat/count?v
GET /_cat/count/twitter?v
4现场数据
当前机器节点使用多少内存来保存现场数据(fielddata)GET /_cat/fielddata?v也可以根据某个列的具体值进行过滤GET /_cat/field ...
计算平均分数
{
"aggs" : {
"avg_grade" : { "avg" : { "field" : "grade" } }
}
}avg代表平均的意思,列为grade。上面可能返回{
...
"aggregations": {
"avg_grade": {
"value": 75
}
}
} ...
聚合的大概语法
"aggregations" : {
"<aggregation_name>" : {
"<aggregation_type>" : {
<aggregation_body>
}
[,"meta" : { [<meta_data_body>] } ]?
[,"aggregations" : { [<sub_aggre ...
对搜索进行解释分数计算过程。如:
GET /twitter/tweet/0/_explain
{
"query" : {
"match" : { "message" : "elasticsearch" }
}
}返回{
"_index": "twitter",
"_type": "tweet",
"_id": "0",
...
同搜索接口,但是只是校验接口是否正确。
GET twitter/_validate/query?q=user:foo返回{"valid":true,"_shards":{"total":1,"successful":1,"failed":0}},如果参数格式不正确,则valid为false
类似搜索,不过是根据搜索条件直接返回结果总数。GET /twitter/tweet/_count?q=user:kimchy
GET /twitter/tweet/_count
{
"query" : {
"term" : { "user" : "kimchy" }
}
}
返回{
"count" : 1,
"_shards" : {
"total" : 5,
...
使用url进行检索会有一定限制,即当条件多的或者复杂的话就不太适合。这种情况下可以把检索要求写在请求体内。(又由于部分开源对于get请求不支持请求体,可以使用post方式)
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"bool": {
...
继上一篇文章,请求路径(uri)大概有一些参数
q搜索语句df当没有指定列的时候的默认列analyzer当需要分析搜索语句的时候使用的分析器 analyze_wildcard 是否分析通配符,默认为false default_operator 操作符,有and,or 默认为or lenient 解析请求失败的情况下是否忽略,默认不忽略 explain 对每个命中的结果都展示计算过程 _source 是否展示_source数据 stored_fields 保存的列或者域 sort 排序方式可以使fieldName:asc/fieldName:desc,也可以是_score字段 track_scor ...