Elasticsearch初步了解学习记录
Elasticsearch是一个基于Lucene的搜索和分析引擎,它设计用于云计算中,能够达到实时搜索,高可用,扩展性好等特点。
以下是一些基本的Elasticsearch操作和概念:
安装与运行Elasticsearch
安装Elasticsearch很简单,可以直接从官网下载对应的版本,然后解压并运行。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz tar -xvf elasticsearch-7.10.0-linux-x86_64.tar.gz cd elasticsearch-7.10.0/ ./bin/elasticsearch
基本概念
- 集群(cluster):集群是由一个或多个节点组成,这些节点共同持有你整个数据集的副本,并且一起提供搜索服务。
- 节点(node):节点是你集群中的一个服务器,它存储数据,并参与集群索引和搜索功能。
- 分片(shard):分片是单个Lucene索引,它们本身就是一个完整的搜索引擎。Elasticsearch会将你的数据拆分到多个分片中,并且这些分片可以分布到不同的节点上。
- 副本(replica):副本是分片的副本,目的是提供高可用性和增加搜索性能。
使用Elasticsearch的REST API
你可以使用Elasticsearch提供的REST API来与Elasticsearch集群进行交互。例如,你可以创建一个索引,添加一些文档,然后执行搜索。
curl -X PUT "localhost:9200/my_index" curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d' { "name": "John Doe" } ' curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d' { "query": { "match": { "name": "John" }} } '
使用Elasticsearch的Java API
除了使用REST API,你也可以使用Elasticsearch的Java API来与Elasticsearch集群进行交互。以下是一个简单的例子,展示了如何创建一个索引,添加一些文档,然后执行搜索。
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 创建索引 CreateIndexRequest request = new CreateIndexRequest("my_index"); CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); // 添加文档 IndexRequest indexRequest = new IndexRequest("my_index"); indexRequest.id("1"); indexRequest.source(XContentType.JSON, "name", "John Doe"); IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); // 搜索文档 SearchRequest searchRequest = new SearchRequest("my_index"); searchRequest.source().query(QueryBuilders.matchQuery("name", "John")); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); client.close();
监控Elasticsearch
你可以使用Elasticsearch提供的Kibana或者Cerebro等工具来监控你的E
评论已关闭