Elasticsearch ignore_above在使用_reindex API时不工作

uurv41yg  于 2023-08-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(104)

我有一个名为“description”的字段,设置为“ignore_above”:32766.
我尝试使用_reindex API将文档从一个索引“a”复制到另一个索引。
问题是我一直遇到这个错误:
“cause”:{“type”:“非法参数异常”,“原因”:“Document在field=“description”中包含至少一个巨大的术语(其UTF8编码比最大长度32766长),所有这些都被跳过。请纠正分析仪,使其不产生此类术语。第一个巨大项的前缀是:'[...]...',原始消息:字节长度最多为32766;得到62670”,“caused_by”:{“type”:“max_bytes_length_exceeded_exception”,“reason”:“字节的长度最多可以是32766;得到62670”} },
我期望“ignore_above”设置可以防止索引超过指定限制的术语,但它似乎没有像预期的那样工作。
索引“a”和“b”对“description”字段具有相同的Map,因此我最初认为,通过简单的查询将文档添加到索引中就可以了。然而,似乎使用_reindex API导致了这个问题。我不确定我的理解是否正确,或者是否有另一个问题我忽略了。

7cwmlq89

7cwmlq891#

原来这只是创建索引“b”时的一个问题。
创建索引时,Map属性被错误地放置在JSON的“设置”部分中,导致Map为空。这阻止了“description”字段正确地忽略它应该忽略的值。

相关问题