ElasticSearch从入门到精通
Elasticsearch是一个基于Lucene库的搜索和分析引擎,它被设计用于云计算中,能够处理大规模的数据。它可以在几秒钟内对PB级的数据进行复杂的查询。
以下是一些Elasticsearch的基本概念和操作:
- 安装和运行Elasticsearch
# 下载Elasticsearch
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# 安装Elasticsearch
sudo apt-get update && sudo apt-get install elasticsearch
# 启动Elasticsearch服务
sudo systemctl start elasticsearch.service
- 使用Elasticsearch的REST API
# 创建一个索引
curl -X PUT "localhost:9200/my_index"
# 获取所有索引
curl -X GET "localhost:9200/_cat/indices?v"
# 在索引中添加一个文档
curl -X POST "localhost:9200/my_index/_doc/" -H 'Content-Type: application/json' -d'
{
"name": "John Doe",
"age": 30,
"about": "I love to go rock climbing"
}'
# 搜索索引中的文档
curl -X GET "localhost:9200/my_index/_search?q=name:John"
- 使用Elasticsearch的查询DSL
# 使用match查询
{
"query": {
"match": {
"name": "John Doe"
}
}
}
- 使用Elasticsearch的聚合查询
# 使用terms聚合
{
"size": 0,
"aggs": {
"distinct_ages": {
"terms": {
"field": "age",
"size": 10
}
}
}
}
- 使用Elasticsearch的高亮搜索结果
# 使用highlight
{
"query": {
"match": {
"name": "John Doe"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
- 使用Elasticsearch的索引别名
# 使用alias
{
"actions": [
{
"add": {
"index": "new_my_index",
"alias": "my_index"
}
}
]
}
这些是Elasticsearch的基本概念和操作,实际上Elasticsearch还有很多高级功能,如索引模板、脚本处理、安全设置等。在实际应用中,你可能需要根据具体需求进行更复杂的设置和查询。
评论已关闭