創建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!!! 以上就是本期的內容,謝謝!!!