创建springboot,记得勾选上NoSql的Elasticsearch
创建成功后就可以写代码了
这是我项目的整体结构,我是在test里面完成的
创建EsBlog类
package cn.xzq.entity; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import java.io.Serializable; /** * Created by 10218 on 2018/7/6. */ @Document(indexName = "blog",type = "blog") public class EsBlog implements Serializable{ @Id private Integer id; private String title; private String summary; private String content; public EsBlog() { } public EsBlog( String title, String summary, String content) { this.title = title; this.summary = summary; this.content = content; } @Override public String toString() { return "EsBlog{" + "id=" + id + ", title='" + title + '\'' + ", summary='" + summary + '\'' + ", content='" + content + '\'' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
创建完成后创建
EsBlogRepository类
package cn.xzq.repository; import cn.xzq.entity.EsBlog; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; /** * Created by 10218 on 2018/7/6. */ public interface EsBlogRepository extends ElasticsearchRepository<EsBlog,String> { Page<EsBlog> findByTitleOrSummaryOrContent(String title, String summary, String content, Pageable pageable); }
然后测试
package cn.xzq; import cn.xzq.entity.EsBlog; import cn.xzq.repository.EsBlogRepository; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringBootTest public class SpringbootesApplicationTests { @Autowired private EsBlogRepository esBlogRepository; @Before public void initData(){ esBlogRepository.deleteAll(); esBlogRepository.save(new EsBlog("木兰花","纳兰性德","人生若只如初见,何事秋风悲画扇。")); esBlogRepository.save(new EsBlog("江城子","苏轼","十年生死两茫茫,不思量,自难忘。")); esBlogRepository.save(new EsBlog("卓文君","白头吟","愿得一心人,白头不相离。")); } @Test public void testFind(){ Pageable pageable = new PageRequest(0,2); String title ="子"; String summary = "苏"; String content = ","; Page<EsBlog> page = esBlogRepository.findByTitleOrSummaryOrContent(title,summary,content,pageable); assertThat(page.getTotalElements()).isEqualTo(1); for (EsBlog item:page.getContent()){ System.out.println(item.getTitle()+"___"+item.getSummary()+"___"+item.getContent()); } } }
当然还有注意application.properties文件的配置
spring.data.elasticsearch.cluster-nodes=0.0.0.0:9300 #ip:9300
spring.data.elasticsearch.properties.transport.tcp.connect_timeout=1200s #这里是没找到连接目标的超时时间
运行结果如下
ok!!! 以上就是本期的内容,谢谢!!!