easy-es/dist/assets/js/14.fd87f12d.js
xpc1024 998be88d92 v0.9.70
1.更细致的单元测试(进行中)
2.压力测试(进行中)
3.修复测试过程中发现的已知问题
即将上线1.0正式稳定版
2022-07-01 16:08:28 +08:00

1 line
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{333:function(t,a,s){"use strict";s.r(a);var e=s(6),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[t._v("本文将介绍 Easy-Es 注解包相关类详解(更多详细描述可点击查看源码注释)")]),t._v(" "),s("blockquote",[s("p",[t._v("注解类包源码:👉 "),s("a",{attrs:{href:"https://gitee.com/dromara/easy-es/tree/master/easy-es-annotation",target:"_blank",rel:"noopener noreferrer"}},[t._v("easy-es-annotation"),s("OutboundLink")],1)])]),t._v(" "),s("h2",{attrs:{id:"esmapperscan"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#esmapperscan"}},[t._v("#")]),t._v(" "),s("a",{attrs:{href:"https://gitee.com/dromara/easy-es/blob/master/easy-es-boot-starter/src/main/java/cn/easyes/starter/register/EsMapperScan.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("@EsMapperScan"),s("OutboundLink")],1)]),t._v(" "),s("ul",[s("li",[s("p",[t._v("描述mapper扫描注解,功能与MP的@MapperScan一致")])]),t._v(" "),s("li",[s("p",[t._v("使用位置Springboot启动类")])])]),t._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@EsMapperScan")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cn.easy-es-mapper"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Application")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 省略其它...")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("table",[s("thead",[s("tr",[s("th",[t._v("属性")]),t._v(" "),s("th",[t._v("类型")]),t._v(" "),s("th",[t._v("必须指定")]),t._v(" "),s("th",[t._v("默认值")]),t._v(" "),s("th",[t._v("描述")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("value")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("自定义mapper所在包全路径")])])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("温馨提示")]),t._v(" "),s("p",[t._v("由于EE和MP对Mapper的扫描都是采用Springboot的doScan而且两套系统互相独立所以在扫描的时候没有办法互相隔离,因此如果您的项目同时有用到EE和MP您需要将EE的Mapper和MP的Mapper放在不同的包下否则项目将无法正常启动。")])]),t._v(" "),s("h2",{attrs:{id:"indexname"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#indexname"}},[t._v("#")]),t._v(" "),s("a",{attrs:{href:"https://gitee.com/dromara/easy-es/blob/master/easy-es-annotation/src/main/java/cn/easyes/annotation/IndexName.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("@IndexName"),s("OutboundLink")],1)]),t._v(" "),s("ul",[s("li",[s("p",[t._v("描述:索引名注解,标识实体类对应的索引 对应MP的@TableName注解,在v0.9.40之前此注解为@TableName.")])]),t._v(" "),s("li",[s("p",[t._v("使用位置:实体类")])])]),t._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexName")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Document")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 省略其它字段")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("table",[s("thead",[s("tr",[s("th",[t._v("属性")]),t._v(" "),s("th",[t._v("类型")]),t._v(" "),s("th",[t._v("必须指定")]),t._v(" "),s("th",[t._v("默认值")]),t._v(" "),s("th",[t._v("描述")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("value")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("索引名可简单理解为MySQL表名")])]),t._v(" "),s("tr",[s("td",[t._v("shardsNum")]),t._v(" "),s("td",[t._v("int")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("1")]),t._v(" "),s("td",[t._v("索引分片数")])]),t._v(" "),s("tr",[s("td",[t._v("replicasNum")]),t._v(" "),s("td",[t._v("int")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("1")]),t._v(" "),s("td",[t._v("索引副本数")])]),t._v(" "),s("tr",[s("td",[t._v("aliasName")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("索引别名")])]),t._v(" "),s("tr",[s("td",[t._v("keepGlobalPrefix")]),t._v(" "),s("td",[t._v("boolean")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("false")]),t._v(" "),s("td",[t._v("是否保持使用全局的 tablePrefix 的值与MP用法一致")])]),t._v(" "),s("tr",[s("td",[t._v("child")]),t._v(" "),s("td",[t._v("boolean")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("false")]),t._v(" "),s("td",[t._v("是否子文档")])]),t._v(" "),s("tr",[s("td",[t._v("childClass")]),t._v(" "),s("td",[t._v("Class")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("DefaultChildClass.class")]),t._v(" "),s("td",[t._v("父子文档-子文档类")])])])]),t._v(" "),s("blockquote",[s("p",[s("strong",[t._v("动态索引名称支持")]),t._v("\n如果你的索引名称是不固定的,我们提供了两种方式可修改CRUD时的索引名称")]),t._v(" "),s("ul",[s("li",[t._v("调用mapper.setCurrentActiveIndex(String indexName)方法,此处的mapper为你自定义的mapper,如documentMapper,通过此API修改索引名称后,全局生效.")]),t._v(" "),s("li",[t._v("在对应的参数中指定当前操作作用的索引,例如 wrapper.index(String indexName),通过此API修改索引名称后,仅作用于该wrapper对应的操作,粒度最细.")])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("温馨提示")]),t._v(" "),s("ul",[s("li",[t._v("当您想直接把类名当作索引名,且并不需要对索引进行其它配置时,可省略此注解")]),t._v(" "),s("li",[t._v("通过注解指定的索引名称优先级最高,指定了注解索引,则全局配置和自动生成索引不生效,采用注解中指定的索引名称. 优先级排序: 注解索引>全局配置索引前缀>自动生成")]),t._v(" "),s("li",[t._v("keepGlobalPrefix选项,(0.9.4+版本才支持)默认值为false,是否保持使用全局的 tablePrefix 的值:\n"),s("ul",[s("li",[t._v("既配置了全局tablePrefix,@TableName注解又指定了value值时,此注解选项才会生效,如果其值为true,则框架最终使用的索引名称为:全局tablePrefix+此注解的value,例如:dev_document.")]),t._v(" "),s("li",[t._v("此注解选项用法和MP中保持一致.")])])]),t._v(" "),s("li",[t._v("其中shardNum为分片数,replicasNum为副本数,如果不指定,默认值均为1")])])]),t._v(" "),s("h2",{attrs:{id:"indexid"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#indexid"}},[t._v("#")]),t._v(" "),s("a",{attrs:{href:"https://gitee.com/dromara/easy-es/blob/master/easy-es-annotation/src/main/java/cn/easyes/annotation/IndexId.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("@IndexId"),s("OutboundLink")],1)]),t._v(" "),s("ul",[s("li",[t._v("描述ES主键注解,在v0.9.40之前此注解为@TableId.")]),t._v(" "),s("li",[t._v("使用位置实体类中被作为ES主键的字段, 对应MP的@TableId注解")])]),t._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Document")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexId")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" id"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 省略其它字段")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("table",[s("thead",[s("tr",[s("th",[t._v("属性")]),t._v(" "),s("th",[t._v("类型")]),t._v(" "),s("th",[t._v("必须指定")]),t._v(" "),s("th",[t._v("默认值")]),t._v(" "),s("th",[t._v("描述")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("value")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('"_id"')]),t._v(" "),s("td",[t._v("主键字段名")])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("Enum")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("IdType.NONE")]),t._v(" "),s("td",[t._v("指定主键类型")])])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("温馨提示")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("当您字段命名为id且类型为String时且不需要采用UUID及自定义ID类型时可省略此注解")])]),t._v(" "),s("li",[s("strong",[t._v("由于es对id的默认名称做了处理(下划线+id):_id,所以EE已为您屏蔽这步操作,您无需在注解中指定,框架也会自动帮您完成映射.")])]),t._v(" "),s("li",[s("strong",[t._v("Id的生成类型支持以下几种:")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("IdType.AUTO:")]),t._v(" 由ES自动生成,是默认的配置,无需您额外配置 推荐")]),t._v(" "),s("li",[s("strong",[t._v("IdType.UUID:")]),t._v(" 系统生成UUID,然后插入ES (不推荐)")]),t._v(" "),s("li",[s("strong",[t._v("IdType.CUSTOMIZE:")]),t._v(" 由用户自定义,用户自己对id值进行set,如果用户指定的id在es中不存在,则在insert时就会新增一条记录,如果用户指定的id在es中已存在记录,则自动更新该id对应的记录.")])])])]),t._v(" "),s("p",[s("strong",[t._v("优先级:")]),t._v(" 注解配置的Id生成策略>全局配置的Id生成策略")])]),t._v(" "),s("h2",{attrs:{id:"indexfield"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#indexfield"}},[t._v("#")]),t._v(" "),s("a",{attrs:{href:"https://gitee.com/dromara/easy-es/blob/master/easy-es-annotation/src/main/java/cn/easyes/annotation/IndexField.java",target:"_blank",rel:"noopener noreferrer"}},[t._v("@IndexField"),s("OutboundLink")],1)]),t._v(" "),s("ul",[s("li",[t._v("描述ES字段注解, 对应MP的@TableField注解,在v0.9.40之前此注解为@TableField")]),t._v(" "),s("li",[t._v("使用位置实体类中被作为ES索引字段的字段")]),t._v(" "),s("li",[t._v("使用场景举例:")])]),t._v(" "),s("ol",[s("li",[t._v("实体类中的字段并非ES中实际的字段,比如把实体类直接当DTO用了,加了一些ES中并不存在的无关字段,此时可以标记此字段,以便让EE框架跳过此字段,对此字段不处理.")]),t._v(" "),s("li",[t._v("字段的更新策略,比如在调用更新接口时,实体类的字段非Null或者非空字符串时才更新,此时可以加字段注解,对指定字段标记更新策略.")]),t._v(" "),s("li",[t._v('对指定字段进行自定义命名,比如该字段在es中叫wu-la,但在实体model中叫ula,此时可以在value中指定value="wu-la".')]),t._v(" "),s("li",[t._v("在自动托管索引模式下,可指定索引分词器及索引字段类型.")]),t._v(" "),s("li",[t._v("在自动托管索引模式下,可指定索引中日期的format格式.")]),t._v(" "),s("li",[t._v("...")])]),t._v(" "),s("p",[t._v("使用示例:")]),t._v(" "),s("div",{staticClass:"language-java line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Document")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 此处省略其它字段... ")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 场景一:标记es中不存在的字段")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexField")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("exist "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" notExistsField"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 场景二:更新时,此字段非空字符串才会被更新")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexField")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("strategy "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FieldStrategy")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("NOT_EMPTY"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" creator"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n \n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 场景三:自定义字段名")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexField")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"wu-la"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" \n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" ula"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 场景四:支持日期字段在es索引中的format类型")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexField")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("fieldType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FieldType")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("DATE"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" dateFormat "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" gmtCreate"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 场景五:支持指定字段在es索引中的分词器类型")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token annotation punctuation"}},[t._v("@IndexField")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("fieldType "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FieldType")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("TEXT"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" analyzer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Analyzer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("IK_SMART"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" searchAnalyzer "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Analyzer")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("IK_MAX_WORD"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("private")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("String")]),t._v(" content"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br")])]),s("table",[s("thead",[s("tr",[s("th",[t._v("属性")]),t._v(" "),s("th",[t._v("类型")]),t._v(" "),s("th",[t._v("必须指定")]),t._v(" "),s("th",[t._v("默认值")]),t._v(" "),s("th",[t._v("描述")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("value")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("字段名")])]),t._v(" "),s("tr",[s("td",[t._v("exist")]),t._v(" "),s("td",[t._v("boolean")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("true")]),t._v(" "),s("td",[t._v("字段是否存在")])]),t._v(" "),s("tr",[s("td",[t._v("fieldType")]),t._v(" "),s("td",[t._v("Enum")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("FieldType.NONE")]),t._v(" "),s("td",[t._v("字段在es索引中的类型")])]),t._v(" "),s("tr",[s("td",[t._v("analyzer")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Analyzer.NONE")]),t._v(" "),s("td",[t._v("索引文档时用的分词器")])]),t._v(" "),s("tr",[s("td",[t._v("searchAnalyzer")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Analyzer.NONE")]),t._v(" "),s("td",[t._v("查询分词器")])]),t._v(" "),s("tr",[s("td",[t._v("strategy")]),t._v(" "),s("td",[t._v("Enum")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("FieldStrategy.DEFAULT")]),t._v(" "),s("td",[t._v("字段验证策略")])]),t._v(" "),s("tr",[s("td",[t._v("dateFormat")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("es索引中的日期格式,如yyyy-MM-dd")])]),t._v(" "),s("tr",[s("td",[t._v("nestedClass")]),t._v(" "),s("td",[t._v("Class")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("DefaultNestedClass.class")]),t._v(" "),s("td",[t._v("嵌套类")])]),t._v(" "),s("tr",[s("td",[t._v("parentName")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("父子文档-父名称")])]),t._v(" "),s("tr",[s("td",[t._v("childName")]),t._v(" "),s("td",[t._v("String")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v('""')]),t._v(" "),s("td",[t._v("父子文档-子名称")])]),t._v(" "),s("tr",[s("td",[t._v("joinFieldClass")]),t._v(" "),s("td",[t._v("Class")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("JoinField.class")]),t._v(" "),s("td",[t._v("父子文档-父子类型关系字段类")])])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("温馨提示")]),t._v(" "),s("ul",[s("li",[t._v("更新策略一共有3种:\n"),s("ul",[s("li",[t._v("NOT_NULL: 非Null判断,字段值为非Null时,才会被更新")]),t._v(" "),s("li",[t._v("NOT_EMPTY: 非空判断,字段值为非空字符串时才会被更新")]),t._v(" "),s("li",[t._v("IGNORE: 忽略判断,无论字段值为什么,都会被更新")])])])]),t._v(" "),s("p",[t._v("其中场景四和场景五仅在索引自动托管模式下生效,如果开启了手动处理索引模式,则需要用户通过手动调用我提供的API传入相应的分词器及日期格式化参数进行索引的创建/更新.")])]),t._v(" "),s("h2",{attrs:{id:"其它注解"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#其它注解"}},[t._v("#")]),t._v(" 其它注解")]),t._v(" "),s("p",[t._v("除了上面这几个高频注解,项目中偶尔还会用到一些其它注解,比如高亮注解@HighLight比如拦截器注解@Intercepts等注解我们会在后面具体的章节详细介绍此处仅列出几个必须掌握的注解其它注解按需学习即可。")])])}),[],!1,null,null,null);a.default=n.exports}}]);