问题标签 [elasticsearch-mapping]

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 投票
3 回答
10686 浏览

date - Elasticsearch 日期格式解析错误

我正在尝试根据 ISO 8601 为 Elasticsearch 字段指定日期格式:

YYYY-MM-DDThh:mm:ssTZD

我把字段映射如下:

当我尝试插入此字段值为: 的文档时"startDate": "2018-01-10T07:07:07+01:00",我收到此错误:

我插入的日期有问题吗?我正在遵循本 W3C 指南(https://www.w3.org/TR/NOTE-datetime)中给出的示例:

0 投票
1 回答
580 浏览

elasticsearch - Elasticsearch 建议带有 like 前缀的函数

我有一个索引,其中存储了一些名称。

所以我输入了一些记录:

通过这个查询,我得到了建议:

如果我设置prefix == bart了,我已经返回了“Bart Simpson”的建议,这是正确的。

我不明白为什么,如果我设置prefix == Simpson我返回了空白结果。

我会有一个%Simpson%与类似 SQL 的运算符匹配的结果集:

  • 荷马辛普森

  • 巴特辛普森

  • 玛吉辛普森

    我该如何进行查询?

0 投票
1 回答
4900 浏览

nested - Pypsark - 使用 collect_list 时保留空值

根据pyspark collect_set 或 collect_list with groupby接受的答案,当您对某个列执行 a 时,该列中的值将被删除。我已经检查过了,这是真的。collect_listnull

但就我而言,我需要保留空列——我怎样才能做到这一点?

我没有找到关于这种collect_list函数变体的任何信息。


背景上下文来解释为什么我想要空值:

我有一个数据框df如下:

我想将其写入具有以下映射的 Elasticsearch 索引:

为了符合上面的嵌套映射,我转换了我的 df,以便对于 eId 和 cId 的每个组合,我都有一个这样的事务数组:

保存df_nested为 json 文件,有我得到的 json 记录:

如您所见 - whencId=1eId=3,我的数组元素之一amount=30.0没有该city属性,因为这是null我的原始数据(df)中的 a 。当我使用该collect_list功能时,将删除空值。

但是,当我尝试使用上述索引将 df_nested 写入 elasticsearch 时,它会出错,因为存在架构不匹配。这基本上就是为什么我想在应用该collect_list函数后保留我的空值的原因。


0 投票
1 回答
3274 浏览

elasticsearch - 更改弹性搜索映射

我正在尝试使用以下代码更改映射:

但它给出了一个错误:

我还尝试通过以下方式重新创建索引:

但我得到了:

我也尝试将 _type 更改为关键字,但它仍然无法正常工作。基本上,我想搜索字符串的完全匹配,为此我指的是:

https://www.elastic.co/guide/en/elasticsearch/guide/current/_finding_exact_values.html#_term_query_with_text

0 投票
2 回答
7406 浏览

datetime - 在 ElasticSearch 中以微秒格式保存日期

我正在尝试使用带有 Logstash 的 jdbc 输入插件将 MySQL 数据库中的一组事件保存到弹性搜索中。数据库中的事件记录包含微秒格式的日期字段。实际上,在微秒组之间的数据库中有记录。

在导入数据时,Elasticsearch 会将微秒日期格式截断为毫秒格式。如何以微秒格式保存数据?elasticsearch 文档说他们遵循 JODA 时间 API 来存储日期格式,该格式不支持微秒并通过在时间戳末尾添加Z来截断。

截断后的示例时间戳:2018-05-02T08:13:29.268Z

数据库中的原始时间戳:2018-05-02T08:13:29.268482

0 投票
0 回答
44 浏览

elasticsearch - 在 Elasticsearch 中高效存储未分析的文本字段

我们有一个包含 100 多个字段的 Elasticsearch 索引。我们在索引映射中仅显式定义少量字段,并为其他所有字段启用动态映射。

许多字段是大小高达 100kb 的标记块。我们只需要能够检查它们的存在,因此没有必要分析它们。

用于此用例的最有效映射是什么?

到目前为止,我们已经考虑了这些字段的以下设置(或使用动态模板作为所有文本字段的默认设置):

  • 保持字段不变type"text"但将index_options参数设置为"docs"only
  • 更改type"keyword"并定义doc_valuesfalse

但是,我们不确定哪种策略是更好的选择。

0 投票
1 回答
1179 浏览

elasticsearch - 关键字的弹性搜索映射

我想将文档关键字索引为数组数据类型,而不是字符串,例如:keywords:['key1', 'key2',...]并且从弹性搜索文档中,您可以将关键字字段作为字符串:

我应该怎么办?

0 投票
0 回答
51 浏览

elasticsearch - _meta 字段编辑是否会清除 Elasticsearch 中的任何缓存?

我想_meta多次编辑 Elasticsearch 索引映射中的字段,但我担心此操作会导致性能下降(例如此操作可以清除缓存)。Elasticsearch 文档中没有此类信息,所以,也许有人可以帮助我解决这个问题?

0 投票
1 回答
662 浏览

elasticsearch - Elasticsearch:没有映射的架构?

根据 Elasticsearch 的路线图,映射类型将在 7.x 中完全删除

我们如何在没有映射的情况下为 Documents 提供模式结构?

例如,我们将如何替换它(具有 3 个特定数据类型字段的 Doc/mapping_type):

0 投票
0 回答
47 浏览

elasticsearch - 应用“伟大的映射重构”时的查询性能

我们的应用程序的实体是动态的,我们不知道它们将拥有多少属性或它们的类型。

到目前为止,我们已经通过以下方式索引我们的数据:

阅读以下博客后:

我们知道最好像这样索引数据:

我们想知道索引在嵌套聚合方面如何工作。由于现在每个实体都将嵌套更深一层,上面的映射重构会损害索引时间(和/或查询/聚合时间)吗?

我们有成千上万种不同的对象类型,因此我们的映射文件很大。这会减慢索引时间,因此非常有必要进行映射重构。

您是否知道在重构我们的映射时有任何缺点,如上面的博客中所述?