[toc]
ElasticSearch Rest
curl -XGET 'http://uplooking01:9200/bank/_search?q=*&pretty'
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"match_all":{}
}
}'
-------------------------------------------------------
在上面基础至少,只要2条结果:
curl -XGET 'http://uplooking01:9200/bank/_search?q=*&pretty&from=0&size=2'
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"match_all":{}
},
from: 0,
size: 2
}'
--------------------------------------------------
排序
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"match_all":{}
},
from: 0,
size: 2,
"sort" : {"balance": {"order": "desc"}}
}'
--------------------------------------------------
执行返回的字段
curl -XGET 'http://uplooking01:9200/bank/_search?_source=age,balance&pretty&from=0&size=2'
post操作如何获取呢?
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"match_all":{}
},
from: 0,
size: 2,
"sort" : {"balance": {"order": "desc"}},
"_source": ["balance", "age"]
}'
----------------------------------------------------------
match:具体匹配操作
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"match":{"age": 20}
},
"from": 0,
"size": 2,
"sort" : {"balance": {"order": "desc"}},
"_source": ["balance", "age"]
}'
----------------------------------------------------------
bool
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
{
"query":{
"bool":{
"should" :[
{"match": {"age": 20}},
{"match": {"gender": "F"}}
]
}
},
"from": 0,
"size": 2,
"sort" : {"balance": {"order": "desc"}},
"_source": ["balance", "age"]
}'
{
"query":{
"bool":{
"should" : {"match": {"age": 20}},
"should" : {"match": {"gender": "F"}}
}
},
"sort" : {"age": {"order": "asc"}},
"_source": ["balance", "age", "gender"]
}
以上两种方式都可以
--------------------------------------------------------------------------
过滤查询
curl -XPOST 'http://uplooking01:9200/bank/_search?pretty' -d'
'{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"range":{
"balance": {
"gte":20000,
"lte":30000
}
}
}
}
}
}'
查询收入在20000到30000之间的数据
Settings、Mappings
Settings
维护索引库默认配置,当然经常用来修改默认配置。
例如:分片数量,副本数量
查看:curl -XGET http://localhost:9200/bigdata/_settings?pretty
操作不存在的索引:
curl -XPUT 'localhost:9200/bigdata/'
-d'{"settings":{"number_of_shards":3,"number_of_replicas":2}}'
操作已存在的索引:
curl -XPUT 'localhost:9200/bigdata/_settings'
-d'{"index":{"number_of_replicas":2}}'
Mappings
就是对索引库中索引的字段名称及其数据类型进行定义,类似于关系数据库中表
建立时要定义字段名及其数据类型那样,(和solr中的schme类似)不过es的
mapping比数据库灵活很多,它可以动态添加字段。一般不需要要指定mapping都
可以,因为es会自动根据数据格式定义它的类型,如果你需要对某些字段添加特
殊属性(如:定义使用其它分词器、是否分词、是否存储等),就必须手动添加mapping
查询索引库的mapping信息
curl -XGET http://localhost:9200/bigdata/dep/_mapping?pretty
mappings修改字段相关属性,见备注
例如:字段类型,使用哪种分词工具
mappings
注意:下面可以使用indexAnalyzer定义分词器,也可以使用index_analyzer定义分词器
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/191804.html