ElasticSearch笔记整理(四):ElasticSearch Rest与Settings、M

[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定义分词器