zoukankan      html  css  js  c++  java
  • Elastic Search(一)

    一. 安装插件

    1. Marvel集群管理

      root@lj-ThinkPad-L460:~# sudo bin/plugin install license
      root@lj-ThinkPad-L460:~# sudo bin/plugin install marvel-agent
      
      访问 http://localhost:9200/_plugin/marvel/
      
    2. Kibana 4.5.1可视化

      root@lj-ThinkPad-L460:~# wget https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz
      root@lj-ThinkPad-L460:~# vim  config/kibana.yml
      Set the elasticsearch.url 
      root@lj-ThinkPad-L460:~# ./bin/kibana 运行
      
      访问 http://yourhost.com:5601
      
    3. 启动es

      ./elasticsearch --cluster.name my_cluster_name --node.name my_node_name
      

    二.快速入门

    1. 管理

      #1.cluster healthy
      curl 'localhost:9200/_cat/health?v'
      #2. nodes in our cluster
      curl 'localhost:9200/_cat/nodes?v'
      #3.list all indices
      curl 'localhost:9200/_cat/indices?v'
      
    2. customer例子

      #1. create an index named "customer" and then list all the indexes again:
      ➜  ~ curl 'localhost:9200/_cat/indices?v'
      ➜  ~ curl 'localhost:9200/_cat/indices?v'
      
      #2. Let’s index a simple customer document into the customer index, "external" type, with an ID of 1 
      ➜  ~ curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
      {
        "name": "John Doe"
      }'
      
      # ip:port/index name/type/id
      ➜  ~ curl -XGET 'localhost:9200/customer/external/1?pretty'
      {
        "_index" : "customer",
        "_type" : "external",
        "_id" : "1",
        "_version" : 1,
        "found" : true,
        "_source" : {
          "name" : "John Doe"  # full json
        }
      }
      
      #3. delete the index that we just created 
      #   curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>
      ➜  ~ curl -XGET 'localhost:9200/customer/external/1?pretty'
      
      
      #4. batch processing
      ➜  ~ curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
      {"index":{"_id":"1"}}
      {"name": "John ss" }
      {"index":{"_id":"2"}}
      {"name": "Jane Doe" }
      '
      
    3. bank例子

      #1. download json file : https://github.com/bly2k/files/blob/mas
      #2. load file
      ➜  ~ curl -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"
      ➜  ~ curl 'localhost:9200/_cat/indices?v'      
      health status index                   pri rep docs.count docs.deleted store.size pri.store.size 
      yellow open   bank                      5   1       1000            0    442.1kb        442.1kb 
      yellow open   .marvel-es-1-2016.06.14   1   1       4816           26      1.9mb          1.9mb 
      yellow open   .marvel-es-data-1         1   1          4            2     12.2kb         12.2kb 
      yellow open   .kibana                   1   1          1            0      3.1kb          3.1kb 
      yellow open   customer                  5   1          2            0      6.5kb          6.5kb 
      
      #3. search api
      ➜  ~ curl 'localhost:9200/bank/_search?q=*&pretty'
      {
        "took" : 89,        #time in milliseconds for Elasticsearch to execute the search
        "timed_out" : false,     #if the search timed out or not
        "_shards" : {            #how many shards were searched, as well as a count of the successful/failed searched shards
          "total" : 5,
          "successful" : 5,
          "failed" : 0
        },
        "hits" : {              #search results
          "total" : 1000,       # total number of documents matching our search criteria
          "max_score" : 1.0,
          "hits" : [ {
            "_index" : "bank",
            "_type" : "account",
            "_id" : "25",
            "_score" : 1.0,
            "_source" : {
              "account_number" : 25,
              "balance" : 40540,
              "firstname" : "Virginia",
              "lastname" : "Ayala",
              "age" : 39,
              "gender" : "F",
              "address" : "171 Putnam Avenue",
              "employer" : "Filodyne",
              "email" : "virginiaayala@filodyne.com",
              "city" : "Nicholson",
              "state" : "PA"
            }
          }, {
      
      # instead of passing q=* in the URI, we POST a JSON-style query : Json Query DSL
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "query": { "match_all": {} }
      }'
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "query": { "match_all": {} },
        "from": 10,
        "size": 10,
        "sort": { "balance": { "order": "desc" } },
        "_source": ["account_number", "balance"]      #显示的字段
      }'
      #where条件
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "query": { "match": { "account_number": 20 } }
      }'
      
      # and or条件查询语法
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "query": {
          "bool": {     
            "must": [   
              { "match": { "address": "mill" } },
              { "match": { "address": "lane" } }
            ]
          }
        }
      }'#"bool":bool型查询     #"must":and    "should":or   "must_not":neither..nor
      
      #范围查询
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "query": {
          "bool": {
            "must": { "match_all": {} },
            "filter": {
              "range": {
                "balance": {
                  "gte": 20000,
                  "lte": 30000
                }
              }
            }
          }
        }
      }' # "gte":大于   "lte":小于
      
      #group by
      #SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC
      ➜  ~ curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
      {
        "size": 0,
        "aggs": {
          "group_by_state": {
            "terms": {
              "field": "state"
            }
          }
        }
      }'
      
      
      
  • 相关阅读:
    Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误解决
    linux打包压缩的时候如何剔除某些不想打包的进来的文件
    linux修改时区和时间
    Linux scp远程文件/目录传输
    nginx报错”could not build the server_names_hash”
    配置Linux+Apache+Mysql+PHP环境
    PHP运行出现Notice : Use of undefined constant 的完美解决方案
    Silverlight 资源文件的问题 不能按指定语言切换
    Silverlight 应用 WCF RIA Services 在 IIS6 部署问题总结
    构架之累
  • 原文地址:https://www.cnblogs.com/72808ljup/p/5584452.html
Copyright © 2011-2022 走看看