zoukankan      html  css  js  c++  java
  • elasticSearch学习笔记

    仅需要jdk,下载解压即可,最好修改下elasticsearch.yml

    cluster.name
    node.name

    es有非常丰富的插件,建议安装下面几个

    bigdesk

    资源监控和集群管理插件
    bin/plugin -install lukas-vlcek/bigdesk
    http://127.0.0.1:9200/_plugin/bigdesk

    elasticsearch-head

    数据查询插件
    bin/plugin -install mobz/elasticsearch-head
    http://localhost:9200/_plugin/head/

      

    elasticsearch-kopf

    集群资源查看和查询插件,和head一起用吧,head偏数据查询一点
    bin/plugin --install lmenezes/elasticsearch-kopf
    http://localhost:9200/_plugin/kopf

    es是文档数据库,和一般rdbms的类比

    关系数据库     ⇒ 数据库 ⇒ 表    ⇒ 行    ⇒ 列(Columns)
    Elasticsearch  ⇒ 索引   ⇒ 类型  ⇒ 文档  ⇒ 字段(Fields)

    具体的可以通过head插件查看

    建立3个测试数据

    PUT /megacorp/employee/1
    {
        "first_name" : "John",
        "last_name" :  "Smith",
        "age" :        25,
        "about" :      "I love to go rock climbing",
        "interests": [ "sports", "music" ]
    }
    
    PUT /megacorp/employee/2
    {
        "first_name" :  "Jane",
        "last_name" :   "Smith",
        "age" :         32,
        "about" :       "I like to collect rock albums",
        "interests":  [ "music" ]
    }
    
    PUT /megacorp/employee/3
    {
        "first_name" :  "Douglas",
        "last_name" :   "Fir",
        "age" :         35,
        "about":        "I like to build cabinets",
        "interests":  [ "forestry" ]
    }

    es的查询非常强大,举个让cassandra蛋疼的模糊查询的例子

    POST /megacorp/employee/_search
    {
      "fields": [
        "first_name"
      ],
      "query": {
        "wildcard": {
          "last_name": "*mi*"
        }
      }
    }

    fields是显示哪些字段,具体的dsl看http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-query.html

    再贴一个and查询

    POST /megacorp/employee/_search
    {
    "query": { "bool": { "must": [ { "wildcard": { "last_name": "*mi*" } }, { "match": { "first_name": "John" } } ] } } }

    关于es的集群,虽说是主从配置,但是用起来,基本上不需要考虑这些问题,master,slave的切换是es内部处理的,对外面完全透明,可以用bigdesk插件查看;集群支持动态添加节点,和cassandra差不多,非常方便。

    创建索引(数据库)的时候,可以指定shards和replicas的数量,也可以动态修改replicas的数量,这对于需要横向扩展的时候,非常有用。

    贴一个大神的翻译,非常感谢他的辛苦工作

  • 相关阅读:
    fork 函数 和vfork 函数的区别
    进程时间
    输出子进程状态
    二维字符串数组字典排序
    括号匹配
    队列实现二叉树层序遍历
    二叉查找树
    分块查找
    JS中的className含义
    Java打印温度转换表
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4305433.html
Copyright © 2011-2022 走看看