使用ElasticSearch全文检索

ElasticSearch  即 ES

首先配置es服务端,---->>  如果没有配置springboot会自动创建一个本地目录供es使用

spring:
  data:
   elasticsearch:
   cluster-nodes: 127.0.0.1:9300

es的使用方式和jpa极其相似,dao层也是用接口 不同的是es的dao继承ElasticSearchRepository

由于ElasticSearchRepository与JpaRepository都继承自PagingAndSortingRepository,所以es和jpa使用同一个实体类时往往会出现问题
(详细见:<a>https://stackoverflow.com/questions/36252099/no-property-index-found-for-type-user</a>)

而实体类的注解类:JPA使用的是@Entity , ES使用的是@Document(indexName="项目名",type="article") Document的indexName和type不能包含大写字母,否则会报错,indexName相当于mysql的database,type相当于table

 解决方案:

将ES的repository单独放在其他的包,如果其他的jpa都在com.test.news下,那es可以放在com,test.es中

在启动类中加上注解:

@EnableElasticsearchRepositories(basePackages = "com.test.es")
@EnableJpaRepositories(basePackages = {"com.test.news"})

猜你喜欢

转载自www.cnblogs.com/yongan140621/p/10448565.html