一、elasticsearch 入门
来源:互联网 发布:人工智能 艺术创作 编辑:程序博客网 时间:2024/06/05 15:00
1.与elasticsearch交互
下载安装:
https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/start
ElasticSearch 为java用户提供了两种内置客户端
- 节点客户端(node client)
以无数据节点的身份加入集群,不存储任何数据,但知道数据在集群中的位置 - 传输客户端(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" } } } } }}
小结
- 基本安装
- 使用,使用 Kibana进行测试
- 添加document
- 简单查询
- 全文检索,短语匹配,高亮结果、聚合
还有其他高级功能例如,推荐、定位、渗透、模糊、部分匹配等等没有提到
阅读全文
0 0
- 一、Elasticsearch快速入门
- ElasticSearch(一)--入门
- 一、elasticsearch 入门
- ElasticSearch 菜鸟笔记 (一)ElasticSearch 入门简介
- elasticsearch——入门(一)
- Elasticsearch.Net使用(一)【入门篇】
- ElasticSearch学习教程(一) 入门安装
- Elasticsearch多语言搜索入门(一)
- elasticsearch(一) 基础入门级demo
- ElasticSearch入门
- ElasticSearch入门
- ElasticSearch入门
- ElasticSearch 入门
- Elasticsearch入门
- ElasticSearch 入门
- elasticsearch入门
- ElasticSearch 入门
- Elasticsearch入门
- 清除eclipse当前登录的SVN账户
- [bootrap datatable]cannot reinitialise data table 的问题
- [转] java基础--java静态代码块和静态方法的区别、static用法
- java笔记(十):枚举(enum)
- 关于初级程序员职场如何提升技能的几点建议?
- 一、elasticsearch 入门
- 织梦dedecms自定义功能函数(4):typeid获取顶级栏目id和名称
- leetcode 350 Intersection of two arrays II
- 【感悟】本书书名无法描述本书内容(二)
- 如何在双击后运行shell脚本
- oracle未找到要求的from关键字,什么问题?
- clamAV 安装与测试
- 如何用一个Java工具类构建sql语句
- 关于set的自定义比较函数的使用及结构体的上下二分用法