问题标签 [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 投票
1 回答
103 浏览

elasticsearch - 在 Elasticsearch 映射中无意添加的“查询”属性

我最近将我们的 ElasticSearch 服务器从版本 0.9 更新到 1.4,当我为新的 ES 导入 Mapping 时,我看到在映射中添加了这个:

该片段不在我导入的映射中,但它总是在我查询时出现curl -X GET localhost:9200/my_index/_mapping?pretty

有没有其他人看过这个?

0 投票
1 回答
1790 浏览

java - 具有未映射字段的 Elastic Search 过滤别名

我最近开始使用filtered aliasesElastic Search (此处的文档),但有一个我不知道如何处理的用例。

用例

我在 ElasticSearch 中为事实编制索引的每个文档都将有一个名为“tenantId”的字段(以及一些其他字段,例如“type”、“id”等)。现在所有文档都驻留在同一个索引中,所以每个租户我想确保我创建了一个过滤的别名。现在,我想在创建租户本身并方便使用“tenantId”后立即创建过滤别名。

问题

当我尝试使用他们的 java 客户端以编程方式创建别名时,出现以下异常:

研究更多,我发现我可能可以使用动态模板来实现这一点。所以我创建了一个模板,将其保存在 下config/templates,重新创建了我的索引并再次尝试了同样的事情。再次遇到同样的异常。在阅读更多here文档(页面底部3行)时,我发现即使我尝试将以下属性更改index.query.parse.allow_unmapped_fields为true(我还没有尝试过),对于过滤的别名,它也会强制它错误的。

现在的问题是,我该如何处理我的用例?我不知道相应类型的映射,但我所知道的事实是,我索引的每个文档,无论类型如何,总是有一个名为的字段tenantId,这就是我想要创建过滤别名的内容。

编辑

我发现了几个有用的链接。不确定这是固定在哪个版本上。 模板中过滤的别名不会从别名索引中继承映射 #8473 index.query.parse.allow_unmapped_fields 设置似乎不允许别名过滤器中未映射的字段 #8431

第二次编辑

发现了 ElasticSearch 的一个开放错误,具有完全相同的问题。等待 ES 开发人员回复。使用模板映射在空索引上创建过滤别名失败 #10038

非常感谢所有帮助!几天以来,我一直在尝试解决这个问题,但没有运气:(。

以下是我用来添加过滤别名的代码,以及默认映射 json 模板

模板

JAVA客户端

(你现在可以忽略“Observable”相关的东西)

0 投票
1 回答
1291 浏览

elasticsearch - 在 Elasticsearch 中具有不同索引/类型的类型中具有相同名称的字段名称

我已经阅读了很多关于 Elasticsearch 中的映射的内容,这是我发现的一些有趣的东西

我从这里的文档中找到了上面的引用

现在我的用例就是这样。这是一个例子。假设some field在tenant1 中必须具有以下映射(对于给定的实体用户):

现在,对于不同租户中的相同字段(对于相同的实体类型,比如说用户),类型必须更改如下:

现在从我从上面的引用中了解到,这意味着即使我可以提供这种映射,技术上也不推荐,因为 Lucene 以同样的方式处理它们。

我的问题是:

1)如何处理我的用例?我是否应该在不同的索引中分离出每个租户,这样我就不必担心这个映射?

2)还有其他解决方法吗?考虑到如果我有太多租户,这意味着我将拥有太多索引这一事实?

3)这个用例的推荐方法是什么?

所有帮助表示赞赏!

0 投票
1 回答
243 浏览

elasticsearch - 覆盖弹性搜索的默认关键字分析

我正在尝试将弹性搜索索引配置为使用keyword分析器进行分析的默认索引策略,然后在某些字段上覆盖它,以允许对它们进行自由文本分析。如此有效地选择加入自由文本分析,我在映射中明确指定分析哪些字段以进行自由文本匹配。我的映射定义如下所示:

所以standard应该是一个分析的字段,并且keyword应该是完全匹配的。但是,当我使用以下命令插入一些示例数据时:

我没有得到与以下查询的任何匹配:

但是我确实得到了比赛:

这让我觉得这个standard领域没有被分析。有谁知道我做错了什么?

0 投票
1 回答
969 浏览

elasticsearch - Elasticsearch - 将文档拆分为单独索引的含义

假设我有 100,000 个来自不同客户组的文档,它们的格式相同,信息类型相同。

来自各个客户组的文档会在一天中的不同时间刷新。有人建议我为每个客户组提供自己的索引,这样当我的个人客户索引在本地刷新时,我可以为该客户创建一个新索引并删除该客户的旧索引。

将数据拆分为多个索引并使用别名进行查询的含义是什么?具体来说:

  • 它会增加我的服务器硬盘要求吗?
  • 它会增加我的服务器 RAM 需求吗?
  • 通过查询别名查询所有索引,elasticsearch 会不会比较慢?

感谢您提供任何帮助或建议。

0 投票
0 回答
663 浏览

elasticsearch - 在 Elasticsearch 索引模板中指定日期字段

我尝试更新我的索引模板以允许直接在 Elasticsearch 中的映射级别使用纪元和 ISO8601 日期格式,这应该覆盖 @timestamp 字段。到目前为止,我没有运气。我的模板可以在这里查看http://pastebin.com/1DCT6GfM

本质上,一旦我解析了由 Logstash 解析的 json 日志,Elasticsearch 应该会识别这些字段并自动更新 @timestamp 字段。潜在日志事件的示例包括:

{"timestamp_epoch": "1432146610", "message": "This is a test message to test epoch timestamp events", "category": "testing", "country": "EU"}

或者

{"timestamp_iso8601": "2015-05-20T14:30:20-05:00", "message": "This is a test message to test epoch timestamp events", "category": "testing", "country": "US"}

请注意,该模板中的所有其他映射都可以正常工作,除了timestamp_epochtimestamp_iso8601。我可以告诉这两个映射没有生效,因为@timestamp 没有更新到正确的值。

您可以在此处查看一些原始示例 Elasticsearch 条目:http: //pastebin.com/HmtmNNAb

timestamp_iso8601的类型正在更新为date,但它没有覆盖 @timestamp 字段,并且timestamp_epoch设置为字符串而不是日期

如果有人能准确地澄清我做错了什么,我将不胜感激。

谢谢!

0 投票
0 回答
52 浏览

elasticsearch - ElasticSearch 文档中是否可以有多个 geo_point 索引?

我有以下类型的映射:

我可以毫无困难地插入文档。但是当我尝试过滤它们时,departure我没有得到任何结果,当我尝试时destination它工作得很好。

geo_point所以问题是:同一个文档中是否可以有多个?

编辑:

样本文件:

示例查询:

谢谢!

0 投票
1 回答
194 浏览

elasticsearch - 如何在elasticsearch中为动态键创建映射

如果我把这样的文件:

然后它创建一个像这样的映射:

“books”对象中的属性/键是动态的,映射会无限增长。如何让 ES 不查看“books”的键并使其了解“books”中的每个值都属于同一类型?例如,映射不应该包含每个图书 ID 的新条目。

0 投票
1 回答
486 浏览

elasticsearch - 在同一映射中使用 not_analyzed 和analyzer 会发生什么?

据我所知,在弹性搜索映射中,这index:not_analyzed意味着它在没有分析的情况下对值进行索引。

当我们想指定一个分析器时,我们可以使用analyzer:<some-analyzer>.

我见过一些人使用这两种设置来处理同一个字段,比如

上面设置的效果是什么,对我来说似乎很矛盾。我错过了什么吗?

0 投票
1 回答
358 浏览

elasticsearch - Elasticsearch 嵌套对象

这是我的映射模板。

}

我的问题是使用此聚合搜索产品时

}

我得到这个错误。

我哪里错了,我看不到。谁能帮帮我