JestClient 操作ES的几种常用方法,持续更新

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@ActiveProfiles("offline")
public class JestClientTest {
    @Autowired
    public JestClient jestClient;
    /**
     * 查询文档
     */
    @Test
    public void getDocumentTest() {
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(QueryBuilders.matchQuery("empNo", "123"));
        searchSourceBuilder.from(0);
        searchSourceBuilder.size(30);
        Search search = new Search.Builder(searchSourceBuilder.toString())
                // multiple index or types can be added.
                .addIndex("*dol*")
                .addType("cloud_logs")
                .build();
        try {
            SearchResult result = jestClient.execute(search);
            List<SearchResult.Hit<Post, Void>> hits = result.getHits(Post.class);
            List<Post> articles = result.getSourceAsObjectList(Post.class);
            System.out.println(articles);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 给索引添加别名
     */
    @Test
    public void createAliasTest() {
        List<String> indics = new ArrayList<>();
        indics.add("posts");
        indics.add("postsss");
        try {
            AddAliasMapping addAliasMapping = new AddAliasMapping.Builder(indics, "mypost").build();
            JestResult jestResult = jestClient.execute(new ModifyAliases.Builder(addAliasMapping).build());
            System.out.println("result:" + jestResult.getJsonString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 根据index获取别名
     */
    @Test
    public void getIndexAlias() {
        String index = "company";
        try {
            JestResult jestResult = jestClient.execute(new GetAliases.Builder().addIndex(index).build());
            System.out.println(jestResult.getJsonString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 判断index是否存在
     */
    @Test
    public void indicesExists(){
        String index = "posoooots";
        IndicesExists indicesExists=new IndicesExists.Builder(index).build();
        JestResult jestResult=null;
        try{
            jestResult = jestClient.execute(indicesExists);
            System.out.println(jestResult.isSucceeded());
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /**
     * count
     * 必须要指定精确的index
     */
    @Test
    public void countTest() throws IOException {
        Count count = new Count.Builder()
                .addIndex("cvf_2018-10-09")
                .addType("cloud_logs")
                .build();

        CountResult result = jestClient.execute(count);
        System.out.println(result.getCount());
    }

    @Test
    public void getIndexList() throws Exception{
        GetMapping getMapping=new GetMapping.Builder().build();
        JestResult jestResult=jestClient.execute(getMapping);
        System.out.println(jestResult.getJsonString());
    }
}

 

JavaScript数组遍历有多种常用方法,例如for循环、forEach方法、map方法、reduce方法等。我们可以通过性能分析对比它们的效率。 首先是for循环,它是最基本的遍历方式。通过使用索引来访问数组元素,可以在遍历过程中直接对元素进行操作。这种方法是最快的,因为它没有额外的函数调用开销,并且可以灵活地控制遍历过程。 其次是forEach方法,它是ES5中引入的数组方法之一。它提供了一种简洁易懂的遍历方式,可以通过回调函数来处理每个元素。然而,forEach方法不能中途跳出循环,也不能直接修改原数组的值。因此,如果需要在循环中进行复杂的操作,它可能会导致一些性能上的损失。 再次是map方法,它也是ES5中的数组方法之一。它可以通过回调函数对数组中的每个元素进行操作,并将结果存储在一个新的数组中返回。map方法会创建一个新的数组,因此在性能方面相对较低。如果只需要遍历数组而不需要返回新的数组,推荐使用forEach方法,它更高效。 最后是reduce方法,它也是ES5中的数组方法之一。它可以通过回调函数对数组中的每个元素进行累积操作,最终返回一个累积值。reduce方法是一种非常灵活且强大的遍历方式,但相对而言性能相对较低。如果只需要遍历数组而不需要累积值,使用forEach方法会更高效。 综上所述,for循环是性能最高的遍历方式,但不如其他方法简洁易懂。根据实际需求来选择合适的遍历方法,可以在性能和代码可读性之间找到平衡点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值