elasticsearch 使用说明


elasticsearch 使用说明

 

*******************************

配置类

 

RestClientProperties:自动配置类使用属性

@ConfigurationProperties(
    prefix = "spring.elasticsearch.rest"
)
public class RestClientProperties {
    private List<String> uris = new ArrayList(Collections.singletonList("http://localhost:9200"));
    private String username;
    private String password;
    private Duration connectionTimeout = Duration.ofSeconds(1L);
    private Duration readTimeout = Duration.ofSeconds(30L);

 

*******************************

相关注解

 

@Document:注解在类上,设置索引名称、主分片数、副本数

@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {

    String indexName();           //索引名称
    short shards() default 5;     //主分片数
    short replicas() default 1;   //主分片对应的副本

    String refreshInterval() default "1s";
    String indexStoreType() default "fs";
    boolean createIndex() default true;
    String type() default "";
    boolean useServerConfiguration() default false;
    VersionType versionType() default VersionType.EXTERNAL;
}

 

@Setting:注解在类上,设置索引配置文件的路径,不常用

@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Setting {
    String settingPath() default "";
}

 

@Mapping:注解在类、字段上,设置映射文件位置,不常用

@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.FIELD})
public @interface Mapping {
    String mappingPath() default "";
}

 

@Field:注解在字段上,设置字段类型、是否索引等信息

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
@Inherited
public @interface Field {
    @AliasFor("name")
    String value() default "";

    @AliasFor("value")
    String name() default "";

    FieldType type() default FieldType.Auto;

    boolean index() default true;
    boolean store() default false;
    boolean fielddata() default false;

    String searchAnalyzer() default "";
    String analyzer() default "";
    String normalizer() default "";

    DateFormat format() default DateFormat.none;
    String pattern() default "";

    String[] ignoreFields() default {};
    boolean includeInParent() default false;
    String[] copyTo() default {};
}


**************************
FieldType:字段类型枚举类

public enum FieldType {
    Text,
    Byte,
    Short,
    Integer,
    Long,
    Date,
    Half_Float,
    Float,
    Double,
    Boolean,
    Object,
    Auto,
    Nested,
    Ip,
    Attachment,
    Keyword;

    private FieldType() {
    }
}

 

@MultiField:注解在字段上,对字段设置多个类型

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface MultiField {
    Field mainField();

    InnerField[] otherFields() default {};  //内部字段可设置多个
}

 

@InnerField:字段多类型映射时,用来设置内部字段

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface InnerField {

    FieldType type();          //字段类型

    boolean index() default true;
    boolean store() default false;

    String searchAnalyzer() default "";
    String analyzer() default "";
    String normalizer() default "";

    String suffix();
    DateFormat format() default DateFormat.none;
    String pattern() default "";
    boolean fielddata() default false;

}

 

@GeoPointField:注解在字段上,表示位置节点

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface GeoPointField {
}

 

 

*******************************

repository 操作

 

ElasticsearchRepository:自定义repository使用接口

@NoRepositoryBean
public interface ElasticsearchRepository<T, ID> extends ElasticsearchCrudRepository<T, ID> {

    <S extends T> S index(S var1);
    <S extends T> S indexWithoutRefresh(S var1);

    Iterable<T> search(QueryBuilder var1);
    Page<T> search(QueryBuilder var1, Pageable var2);
    Page<T> search(SearchQuery var1);
    Page<T> searchSimilar(T var1, String[] var2, Pageable var3);

    void refresh();
    Class<T> getEntityClass();
}

 

ElasticsearchCrudRepository:增删查改接口

@NoRepositoryBean
public interface ElasticsearchCrudRepository<T, ID> extends PagingAndSortingRepository<T, ID> {
}

 

PagingAndSortingRepository:分页排序接口

@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
    Iterable<T> findAll(Sort var1);

    Page<T> findAll(Pageable var1);
}

 

C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值