问题标签 [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.
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)中给出的示例:
elasticsearch - Elasticsearch 建议带有 like 前缀的函数
我有一个索引,其中存储了一些名称。
所以我输入了一些记录:
通过这个查询,我得到了建议:
如果我设置prefix == bart
了,我已经返回了“Bart Simpson”的建议,这是正确的。
我不明白为什么,如果我设置prefix == Simpson
我返回了空白结果。
我会有一个%Simpson%
与类似 SQL 的运算符匹配的结果集:
荷马辛普森
巴特辛普森
玛吉辛普森
我该如何进行查询?
nested - Pypsark - 使用 collect_list 时保留空值
根据pyspark collect_set 或 collect_list with groupby中接受的答案,当您对某个列执行 a 时,该列中的值将被删除。我已经检查过了,这是真的。collect_list
null
但就我而言,我需要保留空列——我怎样才能做到这一点?
我没有找到关于这种collect_list
函数变体的任何信息。
背景上下文来解释为什么我想要空值:
我有一个数据框df
如下:
我想将其写入具有以下映射的 Elasticsearch 索引:
为了符合上面的嵌套映射,我转换了我的 df,以便对于 eId 和 cId 的每个组合,我都有一个这样的事务数组:
保存df_nested
为 json 文件,有我得到的 json 记录:
如您所见 - whencId=1
和eId=3
,我的数组元素之一amount=30.0
没有该city
属性,因为这是null
我的原始数据(df
)中的 a 。当我使用该collect_list
功能时,将删除空值。
但是,当我尝试使用上述索引将 df_nested 写入 elasticsearch 时,它会出错,因为存在架构不匹配。这基本上就是为什么我想在应用该collect_list
函数后保留我的空值的原因。
elasticsearch - 更改弹性搜索映射
我正在尝试使用以下代码更改映射:
但它给出了一个错误:
我还尝试通过以下方式重新创建索引:
但我得到了:
我也尝试将 _type 更改为关键字,但它仍然无法正常工作。基本上,我想搜索字符串的完全匹配,为此我指的是:
datetime - 在 ElasticSearch 中以微秒格式保存日期
我正在尝试使用带有 Logstash 的 jdbc 输入插件将 MySQL 数据库中的一组事件保存到弹性搜索中。数据库中的事件记录包含微秒格式的日期字段。实际上,在微秒组之间的数据库中有记录。
在导入数据时,Elasticsearch 会将微秒日期格式截断为毫秒格式。如何以微秒格式保存数据?elasticsearch 文档说他们遵循 JODA 时间 API 来存储日期格式,该格式不支持微秒并通过在时间戳末尾添加Z来截断。
截断后的示例时间戳:2018-05-02T08:13:29.268Z
数据库中的原始时间戳:2018-05-02T08:13:29.268482
elasticsearch - 在 Elasticsearch 中高效存储未分析的文本字段
我们有一个包含 100 多个字段的 Elasticsearch 索引。我们在索引映射中仅显式定义少量字段,并为其他所有字段启用动态映射。
许多字段是大小高达 100kb 的标记块。我们只需要能够检查它们的存在,因此没有必要分析它们。
用于此用例的最有效映射是什么?
到目前为止,我们已经考虑了这些字段的以下设置(或使用动态模板作为所有文本字段的默认设置):
- 保持字段不变
type
,"text"
但将index_options
参数设置为"docs"
only - 更改
type
为"keyword"
并定义doc_values
为false
但是,我们不确定哪种策略是更好的选择。
elasticsearch - 关键字的弹性搜索映射
我想将文档关键字索引为数组数据类型,而不是字符串,例如:keywords:['key1', 'key2',...]
并且从弹性搜索文档中,您可以将关键字字段作为字符串:
我应该怎么办?
elasticsearch - _meta 字段编辑是否会清除 Elasticsearch 中的任何缓存?
我想_meta
多次编辑 Elasticsearch 索引映射中的字段,但我担心此操作会导致性能下降(例如此操作可以清除缓存)。Elasticsearch 文档中没有此类信息,所以,也许有人可以帮助我解决这个问题?
elasticsearch - Elasticsearch:没有映射的架构?
根据 Elasticsearch 的路线图,映射类型将在 7.x 中完全删除
我们如何在没有映射的情况下为 Documents 提供模式结构?
例如,我们将如何替换它(具有 3 个特定数据类型字段的 Doc/mapping_type):
elasticsearch - 应用“伟大的映射重构”时的查询性能
我们的应用程序的实体是动态的,我们不知道它们将拥有多少属性或它们的类型。
到目前为止,我们已经通过以下方式索引我们的数据:
阅读以下博客后:
我们知道最好像这样索引数据:
我们想知道索引在嵌套聚合方面如何工作。由于现在每个实体都将嵌套更深一层,上面的映射重构会损害索引时间(和/或查询/聚合时间)吗?
我们有成千上万种不同的对象类型,因此我们的映射文件很大。这会减慢索引时间,因此非常有必要进行映射重构。
您是否知道在重构我们的映射时有任何缺点,如上面的博客中所述?