我正在寻找如何在弹性搜索中增加字符串的长度。 这篇文章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"
我如何做其中任何一项?
答案 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"}
}
}
}
'