官网地址:https://www.elastic.co/
安装
最低要求jdk1.7,下载解压就可以了。
配置
配置文件位置:$ES_HOME/config/elasticsearch.yml
虽然es默认配置就能直接用,但是建议修改一下默认配置,如集群名字,分片数,节点名,数据存放位置,日志存放位置。
启动
$ES_HOME/bin/elasticsearch -d
-d参数表示后台启动,还可以指定其他启动参数,如内存大小。 -Xmx3g -Xms3g -XX:PermSize=80
常用命令
查看集群健康状态
curl 'localhost:9200/_cat/health?v'
列出所有索引
curl 'localhost:9200/_cat/indices?v'
创建一个索引
curl -XPUT 'localhost:9200/customer?pretty'
插入一个文档(指定id 如果不指定id会随机生成一个id)
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d ' { "name": "John Doe" }'
根据id查找
curl -XGET 'localhost:9200/customer/external/1?pretty'
删除索引
curl -XDELETE 'localhost:9200/customer?pretty'
修改文档
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d ' { "doc": { "name": "Jane Doe" } }'
不指定id插入文档(不指定id用POST)
curl -XPOST 'localhost:9200/customer/external?pretty'-d ' { "name": "Jane Doe" }'
删除文档
curl -XDELETE 'localhost:9200/customer/external/2?pretty'
普通搜索
curl 'localhost:9200/bank/_search?q=*&pretty'
创建mapping
PUT /{indices}/_mapping/{type} { "my_index": { "mappings": { "my_type": {...} } } }
curl -XPUT http://localhost:9200/fstore/_mapping/test -d '{ "test": { "properties": { "api": { "type": "string", "index": "not_analyzed" }, "appId": { "type": "long" }, "appName": { "type": "string", "index": "not_analyzed" } }, "_source":{"excludes":["appName"]} } }'
查看mapping
GET /{indices}/_mapping/{types}
curl localhost:9200/fstore/_mapping/test?pretty
聚合
curl -XPOST 'localhost:9200/bank/_search?pretty'-d ' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state" } } } }'
基于位置的搜索
Geo Location and Search
一个完整的搜索
curl -XPOST '192.168.3.82:9200/tclappstore/_search?pretty' -d ' { "from": 0, "size": 10, "query": { "filtered": { "query": { "bool": { "should": [ { "multi_match": { "query": "途牛", "fields": [ "name", "recommend_name", "search_keywords" ], "boost": 50 } }, { "wildcard": { "name.raw_lowercase": { "wildcard": "*途牛*", "boost": 100 } } }, { "wildcard": { "recommend_name": { "wildcard": "*途牛*", "boost": 100 } } }, { "match": { "name.first_letter_pinyin": { "query": "途牛", "type": "boolean" } } }, { "match": { "name.full_letter_pinyin": { "query": "途牛", "type": "boolean", "boost": 10 } } }, { "match": { "name.ik_pinyin": { "query": "途牛", "type": "boolean" } } } ] } }, "filter": { "bool": { "must": [ { "term": { "status": 1 } }, { "terms": { "cates": [ 1 ] } } ] } } } }, "sort": [ { "_score": { "order": "desc" } }, { "get_real_download_count": { "order": "desc" } }, { "sort": { "order": "desc" } } ] }'
另外还有批量插入,批量修改文档等
JAVA中连接ES
有两种方式连接ES
建议客户端jar包版本和集群ES版本一直
- NodeClient :以节点形式加入集群
- TransportClient:作为一个普通客户端连接集群
Client client = TransportClient.builder().build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
如果不是默认集群名,需要设置集群名
Settings settings = Settings.settingsBuilder() .put("cluster.name", "myClusterName").build(); Client client = TransportClient.builder().settings(settings).build();
文档API
创建索引
CreateIndexRequest createIndexRequest = new CreateIndexRequest(esIndexName); // 从指定位置读取json文件作为mapping String setting = readMapping("elasticsearch/settings/app-index.json"); createIndexRequest.source(setting); // 创建索引 EsClient.getInstance().getClient().admin().indices().create(createIndexRequest).actionGet();
删除一个文档
DeleteResponse response = client.prepareDelete("twitter", // 索引名 "tweet", // type "1" //文档id ).get();
搜索API
如果debug可以看到查询的dsl语句,可以直接用dsl语句去查寻
setExplain(true) 可以看到返回结果的评分详细
升级
备份数据
https://www.elastic.co/guide/en/elasticsearch/reference/current/backup.html
|
|
|
|
|
|
|
|
|
|
|
Rolling upgrade (if |
|
|
|
|
|
插件
安装插件
$ES_HOME/bin/plugin 加 -h 参数可以查看功能
$ES_HOME/bin/plugin list查看已经安装的插件
建议安装插件head
安装方法:$ES_HOME/bin/plugin -install mobz/elasticsearch-head
中文分词插件ik安装方法
http://my.oschina.net/xiaohui249/blog/232784 (没试是否可以成功,记得大概是这样的)
json查看:http://json.iapolo.com/
相关推荐
Elasticsearch基本概念、内部底层原理、应用场景的介绍
总的来说,ElasticSearch因其强大的搜索和分析能力、分布式特性及广泛的集成支持,成为Java学习者和技术分享者的重要工具。它不仅适用于日志分析、实时搜索,还广泛应用于监控、物联网、内容管理系统等多个领域。...
Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于数据检索、分析和管理。作为分布式、RESTful风格的搜索和数据分析引擎,Elasticsearch能够提供实时、高可用性以及可扩展的搜索功能。在进行日常的数据...
1、以漫画的形式介绍了ES的搜索原理 2、与MySQL对比之下的概念解释 3、直接写SQL语句调用ES 4、一些SQL语句无法实现的查询使用DSL 5、应用场景
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
elasticsearch-7.17.6及对应版本IK分词 适合人群:elasticsearch初学者 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elastic...
### Elasticsearch 分享知识点总结 #### 一、Elasticsearch 概览 **定义与特性:** Elasticsearch(简称 ES)是一款开源的、基于 Lucene 的搜索引擎,它提供了分布式的多用户能力的全文搜索引擎,基于 RESTful Web...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
Elasticsearch,简称ES,是一种分布式、实时的搜索与分析引擎,同时也是一种实时存储系统。它的核心基于Apache Lucene,提供了高效、先进的全文搜索引擎,并且通过RESTful接口隐藏了Lucene的复杂性,使得全文搜索变...
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,...
Elasticsearch 学习笔记实用知识库分享知识分享 Elasticsearch 是一个基于 Lucene 库的开源搜索引擎,提供了全文搜索、结构化搜索和分析等功能。本文档将分享 Elasticsearch 的学习笔记,涵盖从基础概念到高级应用...
分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的...
Elasticsearch笔记 Elasticsearch是基于Lucene的开发的搜索引擎,它支持分布式、多用户访问,可以轻松的扩展到上百台服务器,是近实时的搜索引擎,而...Elasticsearch的安装和使用非常方便,能够满足各种搜索需求。
一旦数据被索引,就可以使用Elasticsearch的强大的查询和分析功能。例如,可以查询所有交易金额大于100的账户,或者找出最近30天内有交易的账户。Elasticsearch支持多种查询语法,包括简单查询、过滤器、聚合、脚本...
Elasticsearch 与 Kibana 是两个非常重要的开源工具,广泛应用于日志分析、数据可视化以及实时搜索领域。这个压缩包包含的是 Elasticsearch 7.10.2 和 Kibana 7.10.2 的 Windows 版本,是专门为在 Windows 操作系统...
Elasticsearch(简称ES)是一款强大的开源搜索引擎,它提供了全文检索、分析和分布式存储等能力。在处理中文文本时,为了更好地进行分词和理解语义,通常需要安装适合中文的分析器。这时,Elasticsearch IK插件就...
**Elasticsearch 的使用与集成** Elasticsearch 支持多种编程语言的客户端库,如 Java、.NET、Python 等,以及通过 RESTful API 和 JDBC、ODBC 进行访问。这使得它易于与各种应用程序集成,无论是在 Web 开发还是大...
### Elasticsearch数据库的下载、配置与使用案例 #### 一、Elasticsearch数据库的下载与安装 **1.1 下载与解压** - **下载Elasticsearch:** - **官方网站下载:** 访问Elasticsearch官方网站...
**Elasticsearch(ES)详解** Elasticsearch是一款开源、分布式、实时的全文搜索引擎,它基于Lucene构建,被广泛用于大数据分析、日志聚合、实时搜索和索引等场景。其强大的功能和易用性使得它在IT行业中备受青睐。...