springdata-elasticsearch版本elasticsearch-5.6.8非集群版

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







}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值