Elasticsearch单字段支持的最大字符数是多少

这篇文章主要介绍“Elasticsearch单字段支持的最大字符数是多少”,在日常操作中,相信很多人在Elasticsearch单字段支持的最大字符数是多少问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Elasticsearch单字段支持的最大字符数是多少”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!01ignore_above的作用?
ES中用于设置超过设定字符后,不被索引或者存储。Strings longer than theignore_abovesetting will not be indexed or stored.02ignore_above用法PUT ali_test{ “mappings”: { “ali_type”: { “properties”: { “url”: { “type”:”keyword”, “ignore_above”:256 }, “url_long”: { “type”:”keyword” }, “url_long_long”: { “type”:”keyword”, “ignore_above”:32766 } } } }}03当字符超过给定长度后,能否存入?验证表名,对于以上mapping中设置的url,url_long,url_long_long3个字段。超过256字符的url,都可以存入。3.1 keyword类型,普通长度验证插入url长度为:1705个字符,如下所示:post ali_test/ali_type/1{ “url” : “1705个字符的url”}url参考地址:http://t.cn/zH6FHG7检索:GET ali_test/ali_type/_search{ “query”: { “term”: {“url” : “1705个字符的url”}}}返回结果:{ “took”: 1, “timed_out”: false, “_shards”: { “total”: 5, “successful”: 5, “failed”: 0 }, “hits”: { “total”: 0, “max_score”: null, “hits”: [] }}结论:1705个字符,url、url_long、url_long_long都可以存入,可以通过head插件查看结果。但是url term检索无法检索返回结果,原因:url字段设置了”ignore_above”:256,导致超出256个字符后不被索引。3.2 对于keyword类型,临界长度验证post 32767个字符的文档,报错如下:{
“error”:{
“root_cause”:[
{“type”:”illegal_argument_exception”,”reason”:”Document contains at least one immense term in field=”url_long” (whose UTF8 encoding is longer than the max length 32766), all of which were skipped. Please correct the analyzer to not produce such terms. The prefix of the first immense term is: ‘[104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 103, 111, 111, 103, 108, 101, 46, 99, 111, 109, 47, 115, 101, 97, 114, 99, 104, 63, 104]…’, original message: bytes can be at most 32766 in length; got 32767″}
],
“caused_by”:{“type”:”max_bytes_length_exceeded_exception”,”reason”:”max_bytes_length_exceeded_exception: bytes can be at most 32766 in length; got 32767″}
},
“status”:400}post 32766个字符后,能提交成功,返回结果如下:{ “_index”: “ali_test”, “_type”: “ali_type”, “_id”: “2000”, “_version”: 1, “result”: “created”, “_sh 香港云主机ards”: { “total”: 2, “successful”: 2, “failed”: 0 }, “created”: true}
结论:keyword类型的最大支持的长度为——32766个UTF-8类型的字符。也就是说term精确匹配的最大支持的长度为32766个UTF-8个字符。04text类型和keyword类型的存储字符数区别?text类型:支持分词、全文检索,不支持聚合、排序操作。适合大字段存储,如:文章详情、content字段等;keyword类型:支持精确匹配,支持聚合、排序操作。适合精准字段匹配,如:url、name、title等字段。一般情况,text和keyword共存,设置mapping如下:{ “mappings”: { “ali_type”: { “properties”: { “title_v1”: { “analyzer”:”ik_max_word”, “type”:”text”, “term_vector” : “with_positions_offsets”, “fields”:{ “keyword”:{ “ignore_above”:256, “type”:”keyword” } } } } } }}到此,关于“Elasticsearch单字段支持的最大字符数是多少”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: win7怎么加入工作组

本文小编为大家详细介绍“win7怎么加入工作组”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7怎么加入工作组”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、首先在win7系统桌面上鼠标右击计算机图标选择属性选项。2、在界面…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/14 10:58
下一篇 07/14 10:58

相关推荐

发表评论

您的电子邮箱地址不会被公开。