springBoot对elasticsearch的支持可以提供直接在Controller层直接调用的数据查询,此查询不需要你自己写任何查询语句就可以实现。
maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
项目启动类代码:
package com.meiszl.Elasticsearch;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.web.config.EnableSpringDataWebSupport;
@SpringBootApplication
@EnableSpringDataWebSupport
public class ElasticsearchMain {
public static void main(String[] args){
SpringApplication.run(ElasticsearchMain.class,args);
}
}
Controller代码:
package com.meiszl.Elasticsearch;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.web.config.EnableSpringDataWebSupport;
@SpringBootApplication
@EnableSpringDataWebSupport
public class ElasticsearchMain {
public static void main(String[] args){
SpringApplication.run(ElasticsearchMain.class,args);
}
}
此时我的elasticsearch中存储了5条数据:
此处调用接口的结果为
直接出了结果,其中没有自己写任何的查询语句与查询逻辑。
但是这种似乎仅限于简单查询,复杂的查询模式还有待研究,
底层通过让Spring MVC首先将路径变量转换为id
域类的类型来解析实例,并最终通过调用findById(…)
为域类型注册的存储库实例来访问实例。