ElasticSearch 安装、使用
下载安装
下载
您可以从Elasticsearch官方网站下载适用于您操作系统的安装包:https://www.elastic.co/downloads/elasticsearch
安装步骤
请按照以下步骤安装Elasticsearch:
-
解压下载的安装包到您选择的目录。
-
进入解压后的目录。
-
启动Elasticsearch:
-
在Linux和Mac上,执行以下命令:
bin/elasticsearch
-
在Windows上,执行以下命令:
bin\elasticsearch.bat
-
验证安装
要验证Elasticsearch是否正确安装并运行,请打开浏览器并访问:http://localhost:9200
如果成功安装,您将看到类似以下的响应:
{
"name" : "your-node-name",
"cluster_name" : "your-cluster-name",
"cluster_uuid" : "your-cluster-uuid",
"version" : {
"number" : "7.14.0",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
"build_date" : "2021-07-29T20:49:32.864135063Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
配置
Elasticsearch的配置文件位于config/elasticsearch.yml
。您可以根据需要修改配置以满足特定的需求。
以下是一些常见的配置选项:
cluster.name
:集群的名称。node.name
:节点的名称。network.host
:绑定的网络接口。http.port
:HTTP API监听的端口。path.data
:数据存储的路径。path.logs
:日志存储的路径。
您可以编辑config/elasticsearch.yml
文件并重启Elasticsearch使配置生效。
数据索引
创建索引
在Elasticsearch中,索引类似于关系数据库中的数据库。本节将介绍如何创建索引。
您可以使用Elasticsearch的REST API创建索引。以下是一个创建名为my_index
的索引的示例:
PUT /my_index
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"title": { "type": "text" },
"content": { "type": "text" }
}
}
}
上述示例中,我们创建了一个名为my_index
的索引,并指定了分片数为1,副本数为0。还定义了文档中的字段及其类型。
添加文档
要向索引中添加文档,使用以下API:
POST /my_index/_doc
{
"title": "Elasticsearch是什么",
"content": "Elasticsearch是一个分布式搜索和分析引擎。"
}
上述示例中,我们向my_index
索引添加了一篇文档,包含标题和内容字段。
获取文档
要获取特定文档的详细信息,使用以下API:
GET /my_index/_doc/{document_id}
将{document_id}
替换为实际的文档ID。
更新文档
要更新文档,使用以下API:
POST /my_index/_update/{document_id}
{
"doc": {
"content": "Elasticsearch是一个高性能、可扩展的搜索引擎。"
}
}
上述示例中,我们更新了my_index
索引中指定ID的文档的内容字段。
删除文档
要删除文档,使用以下API:
DELETE /my_index/_doc/{document_id}
将{document_id}
替换为实际的文档ID。
数据检索
简单检索
要执行简单的文档检索,使用以下API:
GET /my_index/_search
{
"query": {
"match": {
"content": "搜索引擎"
}
}
}
上述示例中,我们在my_index
索引中搜索包含关键词"搜索引擎"的文档。
过滤器和排序
要对搜索结果进行过滤和排序,可以使用过滤器和排序参数。以下是一个示例:
GET /my_index/_search
{
"query": {
"bool": {
"must": { "match": { "content": "搜索引擎" } },
"filter": { "range": { "date": { "gte": "2022-01-01" } } }
}
},
"sort": [
{ "date": "asc" }
]
}
上述示例中,我们使用过滤器将搜索结果限制为指定日期之后的文档,并按日期升序排序。
聚合分析
Elasticsearch的聚合功能可以用于执行各种数据分析操作。本节将介绍一些常见的聚合操作。
以下是一个示例,计算my_index
索引中不同分类的文档数:
GET /my_index/_search
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword",
"size": 10
}
}
}
}
上述示例中,我们执行了一个聚合操作,按照分类字段进行分组,并计算每个分类的文档数。聚合结果中只返回前10个分类。
其他聚合类型
除了terms聚合,Elasticsearch还提供了许多其他聚合类型,如平均值、最大值、最小值、汇总等。
以下是一些其他聚合类型的示例:
-
平均值聚合:
GET /my_index/_search { "size": 0, "aggs": { "avg_price": { "avg": { "field": "price" } } } }
上述示例中,我们计算了
my_index
索引中价格字段的平均值。 -
最大值聚合:
GET /my_index/_search { "size": 0, "aggs": { "max_price": { "max": { "field": "price" } } } }
上述示例中,我们计算了
my_index
索引中价格字段的最大值。 -
汇总聚合:
GET /my_index/_search { "size": 0, "aggs": { "summary_stats": { "stats": { "field": "price" } } } }
上述示例中,我们计算了
my_index
索引中价格字段的汇总统计信息,包括最小值、最大值、平均值、总和和文档数。
- 感谢你赐予我前进的力量