弹性搜索ignore_above设置使用

时间:2019-01-10 09:21:02

标签: 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
                        }
                    }
                }
            }
        }
    }
}
}
我添加了长度约为150kb的数据(长度约为145149) 它允许在电子邮件字段中添加数据,如果它允许这样做,或者我弄错了这个概念,我也可以使用后期搜索端点搜索数据。

2 个答案:

答案 0 :(得分:0)

您的设置ignore_above:256表示如果字符串长度大于256个字符,那么将为文档建立索引,但不会为该字段建立索引。如果字符串长度小于256个字符,则将对文档及其字段建立索引。示例-文本“ stackoverflow”的字符串长度为13个字符。希望这可以澄清。

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

答案 1 :(得分:0)

我今天解决了我的问题,我无法通过xx.keyword获得agg条款值。我的值长度是315。

如果字符串长于ignore_above值,则xx.keyword将不适用于搜索。但是该值可以保存,您可以按其他字段搜索文档。