代码应用
引入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接口,以提供增删改
待续