ElasticsearchAPI_Search

match_all:搜索所有

[root@localhost ~]# curl -XGET 'localhost:9200/bank/_search?pretty' -d '{"query": { "match_all": {} } }'

match:

搜索firstname包含Amber的文档

[root@localhost ~]# curl -XGET 'localhost:9200/bank/_search?pretty' -d '
     {
         "query": { "match": { "firstname": "Amber" } }
     }'

搜索address中包含“mill” 或者 包含“lane”的文档

[root@localhost ~]# curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
        {
          "query": {
                 "match": { "address": "mill lane" } 
                 }
        }' 

match_phrase:短语匹配

匹配短语“mill lane”,此时只会搜索出address为mill lane的文档

[root@localhost ~]#   curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
        {
          "query": { "match_phrase": { "address": "mill lane" } }
        }'

multi_match:fields指定需要查询的字段,_all指定查询所有的字段

在所有的字段中搜索包含“Virginia”的文档

curl -XGET 'localhost:9200/bank/_search?pretty' -d '
    {
        "query":{
            "multi_match":{
                "query":"Virginia",
                "fields":["_all"]
            }
        }
    }'

在firstname和address字段中搜索包含“Virginia”的文档

curl -XGET 'localhost:9200/bank/_search?pretty' -d '
    {
        "query":{
            "multi_match":{
                "query":"Virginia",
                "fields":["firstname","address"]
            }
        }
    }'

Boosting:权重

address字段的权重调成3.与上面一条对比查询结果

curl -XGET 'localhost:9200/bank/_search?pretty' -d '
    {
        "query":{
            "multi_match":{
                "query":"Virginia",
                "fields":["firstname","address^3"]
            }
        }
    }'

分页:size指定返回条数,from指定从第几条返回

[root@localhost ~]#   curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
         {
           "query": { "match": { "address": "mill lane" } },
           "size":3,
           "from":10
        }'

highlight:高亮显示

 curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
          {
            "query": { "match": { "address": "mill lane" } },
            "size":3,
            "from":10,
            "highlight":{
                 "fields":{
                    "address":{}
             }
           }
         }'

filter:查询age大于30且state为ok的文档

curl -XGET "http://localhost:9200/bank/_search" -d'
{
    "query" : {
        "bool" : {
            "must" : {
                "match" : {
                    "state" : "ok" 
                }
            },
            "filter" : {
                "range" : {
                    "age" : { "gt" : 30 } 
                }
            }
        }
    }
}'

你可能感兴趣的:(ElasticsearchAPI_Search)