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"})