Elasticsearch:如何获取字符串字段的长度(在分析之前)?

use*_*r17 2 search full-text-search analysis elasticsearch

我的索引有一个包含可变长度随机id的字符串字段.显然不应该分析它.但我对弹性搜索知之甚少,尤其是在创建索引时.今天我尝试了很多根据id的长度过滤文档,最后我得到了这个groovy脚本:

doc['myfield'].values.size()
Run Code Online (Sandbox Code Playgroud)

要么

doc['myfield'].value.size()
Run Code Online (Sandbox Code Playgroud)

两者都返回神秘的数字,我认为这是因为该领域得到了分析.如果确实如此,有没有办法获得原始长度或修复问题,而无需重建整个索引?

And*_*fan 5

_source而不是doc.那是使用文档的来源,意味着初始索引文本:

_source['myfield'].value.size()
Run Code Online (Sandbox Code Playgroud)

如果可能,尝试将文档重新索引为:

  • doc[field]not-analyzed该字段的版本上使用
  • 更好的是,索引文档之前找出字段的大小,并考虑将其大小添加为文档本身的常规字段