elasticsearch数据库下载、配置、使用案例&项目源码

Elasticsearch下载、配置与使用案例

Elasticsearch是一个开源的搜索和分析引擎,适用于各种数据类型,包括文本、数字、地理位置、结构化和非结构化数据。

1. 下载与安装
1.1 下载

Elasticsearch官方网站 下载最新版本的Elasticsearch。

1.2 安装

以Linux为例,解压下载的压缩包:

bash
复制代码
tar -xzf elasticsearch-7.17.0-linux-x86_64.tar.gz
cd elasticsearch-7.17.0/
1.3 启动

在终端中运行以下命令以启动Elasticsearch:

bash
复制代码
./bin/elasticsearch

Elasticsearch默认在9200端口上运行,启动后可以在浏览器中访问 http://localhost:9200 进行验证。

2. 配置

Elasticsearch的配置文件位于 config/elasticsearch.yml。一些常用配置项如下:

yaml
复制代码
# 节点名称
node.name: node-1

# 集群名称
cluster.name: my-cluster

# 数据路径
path.data: /var/lib/elasticsearch

# 日志路径
path.logs: /var/log/elasticsearch

# 网络绑定地址
network.host: 0.0.0.0

# HTTP端口
http.port: 9200

在修改配置文件后,需要重新启动Elasticsearch以使更改生效。

3. 使用案例
3.1 基本操作

Elasticsearch通过RESTful API进行操作,可以使用curl命令或Postman等工具。

创建索引
bash
复制代码
curl -X PUT "localhost:9200/my_index"
添加文档
bash
复制代码
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe",
  "age": 30,
  "email": "john.doe@example.com"
}'
查询文档
bash
复制代码
curl -X GET "localhost:9200/my_index/_doc/1"
搜索文档
bash
复制代码
curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "name": "John"
    }
  }
}'
3.2 使用Python进行操作

使用elasticsearch Python库可以方便地与Elasticsearch进行交互。

安装库
bash
复制代码
pip install elasticsearch
Python示例代码
python
复制代码
from elasticsearch import Elasticsearch

# 连接到Elasticsearch
es = Elasticsearch(["http://localhost:9200"])

# 创建索引
es.indices.create(index='my_index', ignore=400)

# 添加文档
doc = {
    "name": "Jane Doe",
    "age": 25,
    "email": "jane.doe@example.com"
}
es.index(index="my_index", id=1, document=doc)

# 查询文档
result = es.get(index="my_index", id=1)
print(result['_source'])

# 搜索文档
search_param = {
    "query": {
        "match": {
            "name": "Jane"
        }
    }
}
search_result = es.search(index="my_index", body=search_param)
print(search_result['hits']['hits'])

项目示例:博客搜索引擎

目录结构
arduino
复制代码
blog_search/
├── app.py
├── requirements.txt
└── config/
    └── elasticsearch.yml
requirements.txt
txt
复制代码
Flask
elasticsearch
config/elasticsearch.yml
yaml
复制代码
cluster.name: blog-cluster
network.host: 0.0.0.0
http.port: 9200
app.py
python
复制代码
from flask import Flask, request, jsonify
from elasticsearch import Elasticsearch

app = Flask(__name__)
es = Elasticsearch(["http://localhost:9200"])

@app.route('/create_index', methods=['POST'])
def create_index():
    es.indices.create(index='blog', ignore=400)
    return jsonify({"message": "Index created"}), 201

@app.route('/add_post', methods=['POST'])
def add_post():
    post = request.json
    es.index(index='blog', document=post)
    return jsonify({"message": "Post added"}), 201

@app.route('/search', methods=['GET'])
def search():
    query = request.args.get('q')
    search_param = {
        "query": {
            "match": {
                "content": query
            }
        }
    }
    search_result = es.search(index='blog', body=search_param)
    return jsonify(search_result['hits']['hits']), 200

if __name__ == '__main__':
    app.run(debug=True)

运行项目

  1. 启动Elasticsearch。

  2. 安装项目依赖:

bash
复制代码
pip install -r requirements.txt
  1. 启动Flask应用:

bash
复制代码
python app.py

使用项目

  1. 创建索引:

bash
复制代码
curl -X POST "http://localhost:5000/create_index"
  1. 添加博客文章:

bash
复制代码
curl -X POST "http://localhost:5000/add_post" -H 'Content-Type: application/json' -d'
{
  "title": "First Post",
  "content": "This is the content of the first post."
}'
  1. 搜索博客文章:

bash
复制代码
curl -X GET "http://localhost:5000/search?q=content"

以上示例展示了如何使用Elasticsearch创建一个简单的博客搜索引擎,涵盖了索引创建、文档添加和搜索功能。这是一个入门级项目,可以帮助你理解Elasticsearch的基本使用和Flask的基本操作。你可以在此基础上扩展功能,例如添加用户认证、复杂查询和前端界面等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值