Elasticsearch

来自 ArchWiki

来自 维基百科:Elasticsearch

Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了一个分布式、支持多租户的全文本搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 使用 Java 开发,并根据 Apache 许可证以开源形式发布。

安装

Elasticsearch 现在需要 jre-openjdk-headless,请参阅 Java

安装 elasticsearchAUR 软件包。

运行

如果您在 /usr/share/elasticsearch/config/elasticsearch.keystore 没有密钥库,您需要在启动 Elasticsearch 之前创建一个

# elasticsearch-keystore create

之后,您可以启动/启用 elasticsearch.service

使用 curl 确保 Elasticsearch 正在运行且可访问,curl '<protocol>://<host>:<port>'

curl http://127.0.0.1:9200
{
  "name" : "Sunder",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "*cluster-uuid*",
  "version" : {
    "number" : "2.4.1",
    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",
    "build_timestamp" : "2016-09-27T18:57:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

配置

主要的 Elasticsearch 配置文件有详细文档,位于 /etc/elasticsearch/elasticsearch.yml

  • 默认情况下,Elasticsearch 是公开可访问的,可能更希望仅允许在主机上访问
network.host: 127.0.0.1
  • 可以使用自定义端口而不是默认的 9200
http.port: 9200
警告: elasticsearch.service 可能会因内存过度使用而被终止:“此单元的进程已被 OOM killer 杀死。”

您可能需要更改默认的初始和最大允许内存使用量 [1]

/etc/elasticsearch/jvm.options.d/.options
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms2g # e.g. 256m, 512m, 1g, 2g, ..
-Xmx2g # e.g. 256m, 512m, 1g, 2g, ..

如果您遇到 Linux 内存不足错误,请从 4g 减少到 2g。

您可能需要更新 vm.max_map_count 系统限制

# sysctl -w vm.max_map_count=262144
注意: 安装 elasticsearchAUR 已经提供了增加的 vm.max_map_count,如 /usr/lib/sysctl.d/elasticsearch.conf 中所示。

用法

Elasticsearch 使用 REST API,有关更多信息,请参阅 维基百科:RESTful API

Elasticsearch 指南快速入门部分应为您提供基本和详细的用法信息。

Elasticsearch 服务器管理(文档维护、执行搜索等)通常由 客户端 完成,客户端应提供与首选编程语言的无缝集成。

用于管理 ElasticSearch 实例和集群的有用工具,如 ElasticHQElasticsearch GUIKibanaAdminer 也可用于简化管理。

基本安全

安全性在 Elasticsearch 8.0 及更高版本中默认启用和配置。Elasticsearch 提供了文档来设置强制性的基本安全功能。