参考资料

  1. Neo4j 是一个高性能的 NoSQL 图形数据库
  2. SonarQube 是一个开源的代码质量管理平台
  3. hello-seattle 是一个轻量级、高性能的代理工具
  4. Docker与Kubernetes的关系?
  5. ClefOS 是一款基于开源技术的轻量级 Linux 发行版
  6. Cloudreve是一款自托管的网盘系统,支持对接OnlyOffice实现在线文档编辑功能
  7. MediaWiki 是一个免费开源的维基软件
  8. OrientDB 是一个开源的 多模型数据库

Elasticsearch 简介

Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建,支持实时数据索引与检索。广泛应用于日志分析、全文搜索、业务监控等场景。

主要特点

  1. 分布式架构:支持水平扩展,自动分片数据。

  2. 近实时搜索:数据写入后秒级可查。

  3. RESTful API:通过 HTTP/JSON 接口操作。

  4. 多租户支持:支持多索引独立管理。

  5. 聚合分析:提供强大的数据分析能力。

最新更新(截至2023年10月)

  • 8.10.0(2023年9月)

    • 新增向量搜索优化

    • 安全功能增强

    • 性能改进

下载地址

文档地址

Docker 安装示例

docker run -d --name es01 \
  -p 9200:9200 -p 9300:9300 \
  -e "discovery.type=single-node" \
  docker.elastic.co/elasticsearch/elasticsearch:8.10.0

YAML 配置示例(elasticsearch.yml)

cluster.name: my-cluster
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false  # 禁用安全认证(测试用)

常见问题

  1. 启动报错:内存不足

    bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low

    解决

    sudo sysctl -w vm.max_map_count=262144
  2. 连接拒绝

    • 检查防火墙设置

    • 确认 network.host 配置正确

  3. 分片未分配

    PUT _cluster/settings
    {
      "persistent": {
        "cluster.routing.allocation.enable": "all"
      }
    }
  4. 认证失败(8.x版本)

    curl -u elastic:password -k https://localhost:9200
    • 启用安全功能后需使用 HTTPS 和基本认证:

  5. 索引只读状态

    PUT _settings
    {
      "index.blocks.read_only_allow_delete": null
    }