A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

现在市场上的搜索技术一般都是solr与elasticsearch,两个技术各有优缺点,而现在越来越多的企业采用elasticsearch技术,所以了解elasticsearch技术是很有必要的,而Spring Data Elasticsearch是spring整合elasticsearch,简化对elasticsearch操作的一个框架,下面就讲解一下Spring Data Elasticsearch中一些常用的注解:
1.注解@Document
我们知道在elasticsearch中我们将数据存储在索引中,而索引里面有文档(document),文档其实就相当于mysql数据库中的表的一条数据。@Document注解作用在类上,标记实体类为文档对象,常用属性如下:
(1)indexName:对应索引库名称;
(2)type:对应在索引库中的类型;
(3)shards:分片数
(4)replicas:副本数;
注解@Document源码及相关注释如下:
[Java] 纯文本查看 复制代码
@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {
	/*文档名称,存储在索引库中时的标识名称,一般建议使用项目的名称*/
	String indexName();
	/*文档类型,一般建议使用实体的名称进行命名*/
	String type() default "";
	/*是否使用服务配置,一般情况下不建议使用*/
	boolean useServerConfiguration() default false;
	/*默认分区数*/
	short shards() default 5;
	/*每个默认分区默认的备份数*/
	short replicas() default 1;
	/*默认刷新时间间隔*/
	String refreshInterval() default "1s";
	/*默认索引文件存储文件类型*/
	String indexStoreType() default "fs";
	/*是否创建索引*/
	boolean createIndex() default true;
}

2.注解@Field
@Field一般作用在成员变量上,标记为文档的字段,并指定映射属性;
(1)@Id:作用在成员变量,标记一个字段为id主键;一般id字段或是域不需要存储也不需要分词;
(2)type:字段的类型,取值是枚举,FieldType;
(3)index:是否索引,布尔值类型,默认是true;
(4)store:是否存储,布尔值类型,默认值是false;
(5)analyzer:分词器名称
注解@Field源码及相关注释如下:
[Java] 纯文本查看 复制代码
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
@Inherited
public @interface Field {
	/*自动检测属性类型,可以根据实际情况自己设置*/
	FieldType type() default FieldType.Auto;
	/*是否分词,默认情况下分词,一般默认分词就好,除非这个字段在查询时不会被用到*/
	boolean index() default true;
	/*时间类型格式化*/
	DateFormat format() default DateFormat.none;

	String pattern() default "";
	/*是否存储,默认情况时不存储原文*/
	boolean store() default false;

	boolean fielddata() default false;
	/*指定字段搜索时使用的分词器*/
	String searchAnalyzer() default "";

	String analyzer() default "";
	/*指定需要被忽略的字段*/
	String[] ignoreFields() default {};

	boolean includeInParent() default false;
}




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马