弹性搜索ignore_above设置使用

Moh*_*hit 5 elasticsearch

任何人都可以帮助解决有关解释的疑问之一,如果忽略上面的弹性文档中提到的长度超过ignore_above设置的字符串将不会被索引或存储。对于字符串数组,ignore_above将分别应用于每个数组元素,并且长度超过ignore_above的字符串元素将不会被索引或存储。

这是否意味着如果我添加的数据比长度长,那么它将不允许在 ES 中发布数据

https://www.elastic.co/guide/en/elasticsearch/reference/current/ignore-above.html#ignore-above

这是我尝试过的

我的索引 testData 的映射(即我创建的索引)如下

使用 PUT 映射 api 我添加了以下映射

{
"testdata": {
    "mappings": {
        "testdata": {
            "properties": {
                "email": {
                    "type": "text",
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 256
                        }
                    }
                }
            }
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我添加了长度约为 150kb 的数据(长度约为 145149),它允许在电子邮件字段中添加数据,我还可以使用后搜索端点搜索数据,它是否允许这样做,或者我是否得到了这个概念错误的。

ben*_*556 3

您的设置ignore_above: 256意味着如果字符串长度大于256个字符,则文档会被索引,但该字段不会被索引。如果字符串长度 < 256 个字符,则文档和字段将被索引。示例 - 文本“stackoverflow”的字符串长度为 13 个字符。希望这能澄清。

根据您的映射,ignore_above 设置将应用于该email.keyword字段。

  • 说“字段不会被索引”有点误导。当长度大于 256 时,该字段将被索引为“text”类型,当长度小于 256 时,该字段将被索引为“keyword”类型。 (3认同)