问题标签 [elasticsearch-indices]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
15 浏览

postgresql - PostgreSQL:重建一个 Elasticsearch 索引时的无限 DECLARE CURSOR

我有数百万个对象的许多 Elasticsearch 索引。只有其中一个包含大约 500 万个对象时才会出现问题。

当我尝试重建 Elasticsearch 索引(我使用的是 django-elasticsearch-dsl)时,会发生以下情况:

  1. 索引中的文档计数保持为 0。
  2. 我的 PostgreSQL 数据库中的磁盘使用量正在迅速增长。即,Temp 文件夹正在增长。
  3. 如果我什么都不做,当 100% 的磁盘被使用时重建停止。
  4. 如果我手动终止索引重建命令,磁盘使用量仍会继续增长,直到我重新启动 PostgreSQL
  5. ps aux显示 DECLARE CURSOR 语句始终存在(即未完成)直到崩溃。
  6. 从长远来看,Elasticsearch 索引是存在的,但只有 0 个文档。

这个索引以前就存在过,我对它没有任何问题。我认为我没有更改任何设置,因此行为更加奇怪。我在磁盘空间使用方面没有问题,并且在重建 20 倍大的索引时也没有遇到任何问题。

问题索引的设置如下:

  • number_of_shards: 1
  • number_of_replicas: 0
  • “映射”:{"properties":{"keyword":{"type":"text"}}}

所以,我只有一个名为“关键字”的字段,我正在使用标准分析器,并且在构建索引时没有对“关键字”内容做任何额外的工作。

我试过重命名索引;阻止从 Elasticsearch 到 PosgreSQL 的所有信号;在 Elasticsearch 上禁用 auto_refresh;删除、构建和填充,而不仅仅是重建;重新启动整个网站;等等

什么可能导致这种行为,我该如何处理?

0 投票
1 回答
73 浏览

java - 使用 Java High Level Rest Client 删除 Index Custom api

这是一个自定义 api,用于使用传输客户端删除索引和使用 admin 的导入语句,它工作正常。

我正在使用 Java High Level Rest Client 编写相同的内容,但无法在那里找到适当的导入语句。根据我读过的内容,admin 不能用于 Java High Level Rest Client,因为它似乎已被弃用。

使用 High Level Rest Client 时应该使用新的导入。我可以用它创建索引,但找不到删除请求或响应的相同导入。

import org.elasticsearch.client.indices.CreateIndexRequest 是推荐的一种。

我已经浏览了此文档https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-delete-index.html#,但找不到任何相关内容对此。

这是否不适用于高级休息客户端。这两个进口似乎令人困惑。有人知道这两者之间的具体区别是什么吗?

0 投票
0 回答
39 浏览

java - 使用 java 高级别的客户端的自定义 Elastic Search Alias Api

我正在查看 ElasticSearch Java High level Rest Client Documentation 以创建自定义别名相关的 api,这些 API 将在下面的 Spring Boot 应用程序中提到。

下面的代码片段是根据文档使用 Java High Level Rest Client 添加别名。

但是,在实现 addAlias api 时,我在 AliasActions 中找不到任何类型。IDE 说 TYPE 在 AliasActions 中不存在。

任何想法,我们如何使用 Java High Level Rest Client 创建这些 api。

0 投票
1 回答
39 浏览

elasticsearch - 删除 ElasticSearch 7 中的索引类型

有人可以详细说明在弹性搜索版本 7 中创建索引时不推荐使用类型的原因吗?

我浏览了弹性搜索提到的文档链接https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html但仍然无法理解为什么会这样。

我认为类型有助于更快地搜索文档,因为类似的文档被组合在一起。

0 投票
0 回答
68 浏览

elasticsearch - 在 ElasticSearch 7 的索引中插入文档时,动态映射不显示字段的数据类型

我编写了一个 api,通过使用 Java High Level Rest Client 指定自定义设置和映射来创建索引。Elastic Search的版本是7.索引创建成功。api的信息在下面指定。

在此之后,我使用 localhost:9200/indexName 进行了测试

在此之后,我还编写了一个 api 来将文档添加到索引中,但我没有指定任何映射,因为我想使用动态映射并希望弹性搜索来找出类型本身。

这是控制器方法。该文档基本上是一个 Java 类,我将值提供给它,并在服务层中通过将 Java POJO 转换为 String 将其作为 String 参数传递。服务方法信息如下。

这里的 jsonData 是上面提到的通过转换 POJO 准备的字符串。

在运行此 api 时,文档被插入到给定的索引中,但我没有看到已插入的字段的任何映射。弹性搜索应该使用动态映射。

在这个响应中,您可以看到文档被插入到 index demo 中,但我没有看到所有变量的类型。此响应中还有一个以下面给出的类型命名的字段,但此值看起来是通用的。如果弹性搜索使用动态映射,那么我们可以在哪里看到它赋予文档字段的数据类型。

0 投票
0 回答
26 浏览

elasticsearch - 无法在 Elastic Search 中搜索大写单词

我通过将标记过滤器指定为标准中使用的小写和分析器来创建索引。使用的 Elastic Search 版本是 7。

但是当我搜索文本时,比如说 Summer,它没有给出任何结果,但是当我输入 summer 时,它会获取文档。

据我所知,文档将以我们提供的方式存储。该标准只会使 Elastic 搜索以小写标记。

但是为什么只搜索小写单词而不搜索大写或大写和小写的组合。

下面是映射和查询。

Document 中 title 的值与 summer 相关

搜索到的项目是SUMMer。

0 投票
1 回答
74 浏览

python - 使用 kibana 或 Elasticsearch 本身将保留天数设置为 Elasticsearch 索引

我有一些索引必须应用保留策略。

Indice-a - date_of_creation 30 天
Indice-b - date_of_creation 180 天

有没有办法为 Kibana 上的这些指数设置保留策略?如果没有,我该如何在elasticsearch上设置它们?

0 投票
1 回答
12 浏览

elasticsearch - Elasticsearch SEARCH-API 在使用通配符搜索时会忽略一些现有索引

我想检索有关我的 elasticsearch 数据库中所有可用索引的信息。为此,我向“<elasticsearch_endpoint>/logs-cfsyslog-*/_search/?format=json”发送了一个请求。

请求的正文与此问题无关。我只是简单地过滤一个字段的特定值。我希望 api 返回过去 30 天的所有索引。但是,我只收到一些可用的档案。缺少的一些是:3 月 3 日、2 月 11 日至 17 日和 2 月 26 日至 27 日。

但是,当我通过“<elasticsearch_endpoint>/_cat/indices/logs-cfsyslogs-*”使用“_CAT”API 检索所有可用索引时,我可以看到我期望的所有索引。

我什至可以通过“<elasticsearch_endpoint>/logs-cfsyslog-2022.03.03/_search/?format=json”在搜索 API 中指定我要查找的确切日期,API 将返回我指定的索引。

那么,当我在搜索请求中使用通配符“*”时,elasticsearch 为什么或如何不返回例如 2022 年 3 月 3 日的索引?