如何在弹性搜索中增加字符串的大小

时间:2014-07-23 20:36:28

标签: elasticsearch

我正在寻找如何在弹性搜索中增加字符串的长度。 这篇文章UTF8 encoding is longer than the max length 32766表示,为了做到这一点,我需要做以下其中一项:

1) change the type to binary
2) to continue to use string but set the index type to "no"

我如何做其中任何一项?

1 个答案:

答案 0 :(得分:1)

您需要更改字段的映射,然后重新索引数据 - 在将数据编入索引后,您无法更改字段的映射。

如果您不熟悉Elasticsearch或Put mappings API中的映射概念,我将从这里开始阅读:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping-intro.html

在这里:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-put-mapping.html

假设您想要创建一个二进制字段,您可以执行以下操作:

$ curl -XPUT 'http://localhost:9200/yourindex/yourtype/_mapping' -d '
{
    "yourtype" : {
        "properties" : {
            "yourbigstring" : {"type" : "binary", "store" : true }
        }
    }
}
'

如果您想将其保留为字符串但未分析:

$ curl -XPUT 'http://localhost:9200/yourindex/yourtype/_mapping' -d '
{
    "yourtype" : {
        "properties" : {
            "yourbigstring" : {"type" : "string", "store" : true, "index" : "not_analyzed"}
        }
    }
}
'