elasticsearch 中的 ignore_above - 简书


本站和网页 https://www.jianshu.com/p/133a0f49311a 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

elasticsearch 中的 ignore_above - 简书登录注册写文章首页下载APP会员IT技术elasticsearch 中的 ignore_above朱小虎XiaohuZhu关注赞赏支持elasticsearch 中的 ignore_above
Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。
今天遇到一个异常
java.lang.IllegalArgumentException: Document contains at least one immense term in field="title.notanalyzed_title" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped.
检查了一下发现是因为对 not_analyzed 字符串字段默认设置,以及出现了超长的标题所致。根本原因在于标题没有一个空格,es将其当成了整个的词
查看 elasticsearch 的文档,详述如下:
ignore_above
对超过 ignore_above 的字符串,analyzer 不会进行处理;所以就不会索引起来。导致的结果就是最终搜索引擎搜索不到了。这个选项主要对 not_analyzed 字段有用,这些字段通常用来进行过滤、聚合和排序。而且这些字段都是结构化的,所以一般不会允许在这些字段中索引过长的项。
PUT my_index
"mappings": {
"my_type": {
"properties": {
"message": {
"type": "string",
"index": "not_analyzed",
"ignore_above": 20 ...... (1)
PUT my_index/my_type/1 ...... (2)
"message": "Syntax error"
PUT my_index/my_type/2 ...... (3)
"message": "Syntax error with some long stacktrace"
GET _search ...... (4)
"aggs": {
"messages": {
"terms": {
"field": "message"
(1) 这个字段忽略所有长度超过 20 的字符串
(2) 这个文档会被成功索引
(3) 这个文档会被索引,但是 message 字段却不会被索引
(4) 搜索会返回这两个问答是哪个,但是只有第一个会出现在项的聚合中
ignore_aboe 设置允许针对统一索引中的同样名称的字段设置不同的值。可以使用 PUT mapping API 来更新已经存在的字段。
这个选项在保护 Lucene 的项的字节长度限制 32766 发挥作用。
ignore_above 值表示字符个数,但是 Lucene 计算的是字节数。如果你使用包含很多非 ASCII 字符的 UTF-8 文本,你应该将这个限制设置成 32766 / 3 = 10922 因为 UTF-8 字符可能最多占用 3 个字节。
推荐阅读更多精彩内容Elasticsearch 中的类型 type 和映射 mappingNeil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist...朱小虎XiaohuZhu阅读 35,219评论 1赞 11Elasticsearch基本概念简介Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist...朱小虎XiaohuZhu阅读 1,876评论 0赞 5Lucene总结系列(一)--认识、helloworld以及基本的api操作。也是项目需要用的框架之一,为了不让自己轻易忘记它,在此记录一系列的lucene学习笔记(基于lucene4.4,I...JackFrost_fuzhu阅读 1,711评论 4赞 27零宕机改变映射的方法Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist...朱小虎XiaohuZhu阅读 424评论 0赞 1真实励志故事:陈月香的前半生和后半生01 手机振了一下,陈月香摸手机一看,是女儿给她发的微信转账,500块。 还有一条信息:“妈,昨天刚发了加班费。你...奇奇漫悦读阅读 2,651评论 18赞 58落地践行第二天昨天看大家的分享落地践行,把老师讲的东西都在生活中对应上了,我看到了我还停留在原来的思维模式上,学和用是分开的,整...韩彦芳阅读 135评论 0赞 02017-08-06很想念一个人 却知道再也回不去了 这些话无从说起 只能在这里发一些牢骚 怎么没人会去关心我这些 只想说 好想你 ...怪惟叔阅读 95评论 0赞 0一封未送出的信叶寻佳在一次意外中不幸身亡,当他醒来的时候,看到了掌管转世的灵人,叶寻佳与灵人进行了一次协商,打算跳出轮回,重返人...雾三半阅读 407评论 0赞 6tips-3[NSNull null]//单例,占位的,约等nil因为数组和字典不能为空,所以可以用它,表明一个空的数组活字典...沁晓Chr阅读 340评论 0赞 0评论0赞99赞10赞赞赏更多好文