一、elasticsearch 入门

1.与elasticsearch交互

下载安装:
https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/start

ElasticSearch 为java用户提供了两种内置客户端
  1. 节点客户端(node client)
    以无数据节点的身份加入集群,不存储任何数据,但知道数据在集群中的位置
  2. 传输客户端(Transport client)
    不加入集群,只是简单转发请求。
    两种都是以9300端口进行集群交互,使用elasticSearch传输协议,集群节点之间 也是用 9300 端口进行同行。

2.elasticsearch操作

官方文档入口:https://www.elastic.co/guide/index.html
javaApi:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

基于Http 协议,以JSON为数据交互格式的Restful API

格式:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

 1. VERB: HTTP方法: GET , POST , PUT , HEAD , DELETE
 2. HOST:Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
 3. PORT:Elasticsearch HTTP服务所在的端口,默认9300
 4. PATH:API路径(例如_count将返回集群中文档的数量),PATH可以包含多个组件,例如_cluster/stats或者_nodes/stats/jvm
 5. QUERY_STRING:一些可选的查询请求参数,例如 ?pretty 参数将使请求返回更加美观易读的JSON数据
 6. BODY:一个JSON格式的请求主体(如果请求需要的话)
例如:curl -XGET "http://localhost:9200/_count?pretty" -d "
----------
{
  "count" : 5,
  "_shards" : {
    "total" : 21,
    "successful" : 21,
    "failed" : 0
  }
}


使用官方可视化工具调试开发,http://localhost:5601/app/kibana#/dev_tools/console?_g=()

3.elasticsearch基本概念和使用

基本概念

RDBMS(Relation DataBase Manage System)与ES(ElasticSearch)关系
RDBMS 》 DB 》 Tables 》 数据描述(colum+具体data)
ES 》 indices 》 Types 》 document(fields+值)
1. es是面向文档的,即es可以储存整个对象/文档
2. 文档序列化格式:JSON,javascrip object notaion
3. 索引:indexing
4. 搜索:search
5. 聚合:aggregaton

添加
PUT /website/blog/1
{
  "title":"hello elastic search",
  "text":"just for test"
}

*简单搜索:
GET /megacorp/employee/_search
GET /megacorp/employee/_search?q=last_name:Smith

*DSL(Domain Specific Language,特定领域语言)语句查询
GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}


*更复杂的搜索。query:查询条件, filter:过滤器,match:匹配  
GET /megacorp/employee/_search

*全文搜索:
GET /website/blog/_search
{
  "query": {
    "match": {
      "title": "first blog  e"
    }
  }
}

*短语搜索,match_phrase
GET website/blog/_search
{
  "query": {
    "match_phrase": {
      "title": "first blog  e"
    }
  }
}

*高亮搜索结果,highlight
GET website/blog/_search
{
  "query": {
    "match_phrase": {
      "title": "first blog "
    }
  },
  "highlight": {
    "fields": {
      "title": {}
    }
  }
}
*分析 aggregations,
GET website/blog/_search
{
  "aggs": {
    "same_date": {
      "terms": {"field": "date"}
    }
  }
}


*允许分级汇总
例如:
GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests"
      },
      "aggs": {
        "avg_age": {
          "avg": {
            "field": "age"
          }
        }
      }
    }
  }
}

小结

  1. 基本安装
  2. 使用,使用 Kibana进行测试
  3. 添加document
  4. 简单查询
  5. 全文检索,短语匹配,高亮结果、聚合
    还有其他高级功能例如,推荐、定位、渗透、模糊、部分匹配等等没有提到
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值