zoukankan      html  css  js  c++  java
  • elasticSearch基本使用

    创建索引:

    post: 127.0.0.1:9200/people
    {
        "settings": {
            "number_of_shards": 3,
            "number_of_replicas": 1
        },
        "mappings": {
            "man": {
                "properties": {
                    "name": {
                        "type": "text"
                    },
                    "country":{
                        "type":"keyword"
                    },
                    "age":{
                        "type":"integer"
                    },
                    "date":{
                        "type":"date",
                        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                    }
                }
            },
            "woman":{
               
            }
        }
    }
    

    为索引添加类型:

    post:127.0.0.1:9200/book/novel/_mappings
    
    {
    
            "novel":{
                "properties":{
                    "word_count":{
                        "type":"integer"
                    },
                    "author":{
                        "type":"keyword"
                    },
                    "title":{
                        "type":"text"
                    },
                    "publish_date":{
                        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
                        "type":"date"
                    }
                }
            }
    }
    

    为类型添加文档:

    post: 127.0.0.1:9200/people/man/1
    
    {
        "name": "luoluo",
        "country": "China",
        "age": 30,
        "date": "1993-05-04"
    }
    

    修改文档:

    post :127.0.0.1:9200/people/man/1/_update
    
    {
        "doc":{
            "name": "luoluo3333"
        }
    }
    

    删除文档:

    delete: 127.0.0.1:9200/people/man/1
    

    删除索引:

    delete: 127.0.0.1:9200/people
    

    查询数据:

    get: 127.0.0.1:9200/book/novel/1
    

    查询所有的数据:

    post: 127.0.0.1:9200/book/_search
    //默认返回10条数据
    
    {
        "query":{
            "match_all":{}
        }
    }
    

    数据大小分页查询以及从哪里返回:

    post: 127.0.0.1:9200/book/_search
    //默认返回10条数据
    
    {
        "query":{
            "match_all":{}
        },
        "from": 1,
        "size":1
    }
    

    对关键词查询:

    post: 127.0.0.1:9200/book/_search
    
    {
        "query":{
            "match":{
                "title":"ElasticSearch"
            }
        }
    }
    

    查询的结果排序:

    post: 127.0.0.1:9200/book/_search
    
    {
        "query":{
            "match":{
                "title":"ElasticSearch"
            }
        },
        "sort":[
            {"publish_date":{"order":"desc"}}  
        ]
    }
    

    聚合查询:

    post: 127.0.0.1:9200/book/_search
    
    {
        "aggs":{
            "group_by_word_count":{
                "terms":{
                    "field":"word_count"
                }
            }
        }
    }
    
    会返回聚合信息:
    {
         "aggregations": {
            "group_by_word_count": {
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": 1000,
                        "doc_count": 4
                    },
                    {
                        "key": 5000,
                        "doc_count": 3
                    },
                    {
                        "key": 3000,
                        "doc_count": 1
                    },
                    {
                        "key": 10000,
                        "doc_count": 1
                    }
                ]
            }
        }
    }
    

    根据多个条件进行聚合查询:

    post: 127.0.0.1:9200/book/_search
    
    {
        "aggs":{
            "group_by_word_count":{
                "terms":{
                    "field":"word_count"
                }
            },
            "group_by_publish_date":{
                "terms":{
                    "field":"publish_date"
                }
            }
        }
    }
    

    计算:

    post: 127.0.0.1:9200/book/_search
    {
        "aggs":{
            "grades_word_count":{
                "stats":{
                   "field":"word_count"
                }
            }
        }
    }
    
    返回:
    {
         "aggregations": {
            "grades_word_count": {
                "count": 9,
                "min": 1000,
                "max": 10000,
                "avg": 3555.5555555555557,
                "sum": 32000
            }
        }
    }
    

    子条件查询:

    全文本查询:

    模糊匹配:
    post: 127.0.0.1:9200/book/_search
    {
        "query":{
            "match":{
                "author":"luoluo"
            }
        }
    }
    
    习语匹配:(匹配整个单词,不会拆分)
    {
        "query":{
            "match_phrase":{
                "title":"ElasticSearch入门"
            }
        }
    }
    多个字段匹配:
    {
        "query":{
            "multi_match":{
                "query":"luoluo",
                "fields":["author","title"]
            }
        }
    }
    语法查询:
    会查询出ElasticSearch 和 七十二变的数据
    {
        "query":{
            "query_string":{
                "query":"ElasticSearch OR 七十二变"
            }
        }
    }
    指定字段:
    {
        "query":{
            "query_string":{
                "query":"ElasticSearch OR luoluo",
                "fields":["title","author"]
            }
        }
    }
    
    字段级别的查询:
    {
        "query":{
            "term":{
                "author":"luoluo"
            }
        }
    }
    还支持范围查询:
    {
        "query":{
            "range":{
                "word_count":{
                    "gte":1000,
                    "lte":2000
                }
            }
        }
    }
    

    Filter Context

    在查询过程中,只判断该文档是否满足条件,只有Yes或者No

    post: 127.0.0.1:9200/book/_search
    
    {
        "query":{
            "bool":{
                "filter":{
                    "term":{
                        "word_count":1000
                    }
                }
            }
        }
    }
    

    复合条件查询:

    固定分数查询:
    
    {
        "query":{
            "constant_score":{
                "filter":{
                    "match":{
                        "title":"入门"
                    }
                },
                "boost":2
            }
        }
    }
    
  • 相关阅读:
    算法时间测试
    HDU1164
    git 中 HEAD detached from 802e836
    mysql中的substring()截取字符函数
    git分支/标签操作
    git简介、基本命令和仓库操作
    markdown编辑器学习
    数据库的三范式
    switch语句能否作用在byte,long,string上
    Spring的优缺点
  • 原文地址:https://www.cnblogs.com/luozhiyun/p/9455585.html
Copyright © 2011-2022 走看看