elasticsearch java实现规则

代码应用

引入maven

<dependency>

    <groupId>org.elasticsearch</groupId>

    <artifactId>elasticsearch</artifactId>

    <version>6.2.4</version>

</dependency>

<dependency>

    <groupId>org.springframework.data</groupId>

    <artifactId>spring-data-elasticsearch</artifactId>

    <version>3.1.3.RELEASE</version>

</dependency>

配置好连接方式

<bean id="esCluster" class="org.springframework.data.elasticsearch.client.TransportClientFactoryBean">

<property name="clusterName" value="${cluster.name}"/>

<property name="clusterNodes" value="${es.cluster}"/>

<property name="clientIgnoreClusterName" value="true"/>

<property name="clientTransportSniff" value="true"/>

</bean>
<bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">

<constructor-arg name="client" ref="esCluster"/>

</bean>



<bean id="simpleElasticsearchRepository"

class="org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository">

<constructor-arg name="elasticsearchOperations" ref="elasticsearchTemplate"/>

</bean>

model指定位置

indexName:索引库名

type:类型

shards:默认分区数

replicas:每个分区默认的备份数

refreshInterval() default "1s"; //刷新间隔

indexStoreType() default "fs"; //索引文件存储类型

@Document(indexName = "order_001",type = "order",shards = 2,replicas = 1)

public interface Test extends ElasticsearchRepository<Model类,String>

正常查询,构建条件

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

boolQueryBuilder.must(QueryBuilders.matchQuery("userName",person.getUserName()));

boolQueryBuilder.should(QueryBuilders.matchQuery("c","0"));

boolQueryBuilder.should(QueryBuilders.matchQuery("cusc",person.getCc()));

Iterable<Person> people = userRes.search(boolQueryBuilder);

分页查询

Pageable pageable = new PageRequest(esConditionsDTO.getCurrentPage(), esConditionsDTO.getPageSize());

Page<SocialDTO> people = socialRes.search(boolQueryBuilder,pageable);

分页排序

Sort sort = new Sort(Sort.Order.asc("createTime"));//排序

PageRequest pageable = new PageRequest(page, SearchProperty.PAGE_SIZE,sort);

ElasticsearchRepository层级继承关系如下图,里面有分页等方法,继承自CrudRepository接口,以提供增删改

待续

发布了45 篇原创文章 · 获赞 44 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/Goligory/article/details/104034254