import com.sun.org.apache.xpath.internal.operations.Or; import com.xiangshuai.es.entity.Article; import com.xiangshuai.es.entity.Order; import com.xiangshuai.es.service.ArticleService; import com.xiangshuai.es.service.OrderSevice; import org.elasticsearch.index.query.QueryBuilders; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * @author lqx * @ClassName SpringDataESTest * @description 代码和配套的其他资料都在E(我的网盘\我的笔记):\学习文档子目录压缩\框架\全文检索\Elasticsearch\springdata-elasticsearch版本elasticsearch-5.6.8非集群版 * @date 2020/5/28 10:13 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContext.xml") public class SpringDataESTest { @Autowired private ElasticsearchTemplate elasticsearchTemplate; @Autowired private ArticleService articleService; @Autowired private OrderSevice orderSevice; /** * 创建索引 * 配置映射 */ @Test public void createIndex(){ elasticsearchTemplate.createIndex(Article.class); //elasticsearchTemplate.putMapping(Article.class); } /** * 删除索引 * 配置映射 */ @Test public void deleteIndex(){ elasticsearchTemplate.deleteIndex(Article.class); } /** * 创建文档 */ @Test public void createDocument(){ Article article = new Article(); article.setId(1); article.setTitle("nihao"); article.setContent("wohao"); articleService.save(article); } /** * 删除文档 */ public void deleteDoc(){ Article article = new Article(); article.setId(1); articleService.delete(article); } /** * 更新文档 */ @Test public void UpdateDocument(){ Article article = new Article(); article.setId(1); article.setTitle("hi"); article.setContent("hello"); articleService.update(article); } /** * 添加所有 */ @Test public void saveAll(){ List<Article> articles = new ArrayList<Article>(); for (int i = 0; i < 100; i++) { Article article = new Article(); article.setId(i); article.setTitle(i+"标题"); article.setContent(i+"内容"); articles.add(article); } articleService.saveAll(articles); } /** * 查询所有 */ @Test public void findAll(){ Iterable<Article> articles = articleService.findAll(); for (Article article : articles) { System.out.println(article); } } /** * 分页查询 */ @Test public void findByPage(){ int page = 1; int size = 5; Iterable<Article> articles = articleService.findByPage(page,size); for (Article article : articles) { System.out.println(article); } } /** * 原生查询 */ @Test public void termNativequery(){ NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); nativeSearchQueryBuilder.withQuery(QueryBuilders.termQuery("title","搜索")); nativeSearchQueryBuilder.withPageable(PageRequest.of(1,5)); NativeSearchQuery build = nativeSearchQueryBuilder.build(); List<Article> articles = elasticsearchTemplate.queryForList(build, Article.class); for (Article article : articles) { System.out.println(article); } } /** * 原生查询 */ @Test public void queryStringQuery(){ NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); nativeSearchQueryBuilder.withQuery(QueryBuilders.queryStringQuery("搜索")); NativeSearchQuery build = nativeSearchQueryBuilder.build(); List<Article> articles = elasticsearchTemplate.queryForList(build, Article.class); for (Article article : articles) { System.out.println(article); } } @Test public void createIndex1(){ elasticsearchTemplate.createIndex(Order.class); elasticsearchTemplate.putMapping(Order.class); } @Test public void deleteIndex1(){ elasticsearchTemplate.deleteIndex(Order.class); } @Test public void saveDoc(){ Order order = new Order(); order.setId(1000); order.setContent("第一个order"); order.setOrderName("火柴"); orderSevice.addDoc(order); } @Test public void deleteD(){ Order order = new Order(); order.setId(1000); orderSevice.deleteDo(order); } @Test public void addLL() { List<Order> orders=new ArrayList<Order>(); for (int i = 1; i < 100; i++) { Order order = new Order(); order.setId(i); order.setOrderName("商品名"+i); order.setContent("商品描述为"+i); orders.add(order); } orderSevice.addAll(orders); } @Test public void getAll(){ Iterable<Order> all = orderSevice.getAll(); all.forEach((order)->{ System.out.println(order); }); } /** * 原生查询 */ @Test public void queryStringQueryOrder(){ NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); nativeSearchQueryBuilder.withQuery(QueryBuilders.queryStringQuery("商品")); NativeSearchQuery build = nativeSearchQueryBuilder.build(); List<Order> Orders = elasticsearchTemplate.queryForList(build, Order.class); for (Order order : Orders) { System.out.println(order); } } /** * 原生查询-根据term也就是mapper,相当于字段查询 */ @Test public void termNativequeryOrder(){ NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); nativeSearchQueryBuilder.withQuery(QueryBuilders.termQuery("orderName","商品")); nativeSearchQueryBuilder.withPageable(PageRequest.of(0,5)); NativeSearchQuery build = nativeSearchQueryBuilder.build(); List<Order> orders = elasticsearchTemplate.queryForList(build, Order.class); for (Order order : orders) { System.out.println(order); } } //分页查询 @Test public void findLimit(){ Iterable<Order> orders = orderSevice.findByPage(0, 6); orders.forEach((order)->{ System.out.println(order); }); } //id查询 @Test public void findById(){ Order order = orderSevice.findById(1); System.out.println(order); } //id查询在更新 @Test public void updateById(){ Order order = orderSevice.findById(1); order.setContent("我是更新的"); orderSevice.updateDo(order); System.out.println(order); } }
springdata-elasticsearch版本elasticsearch-5.6.8非集群版
最新推荐文章于 2024-03-07 14:31:51 发布