一、elasticsearch 入门

来源:互联网 发布:人工智能 艺术创作 编辑:程序博客网 时间:2024/06/05 15:00

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/_searchGET /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_phraseGET website/blog/_search{  "query": {    "match_phrase": {      "title": "first blog  e"    }  }}*高亮搜索结果,highlightGET 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. 全文检索,短语匹配,高亮结果、聚合
    还有其他高级功能例如,推荐、定位、渗透、模糊、部分匹配等等没有提到
原创粉丝点击