zoukankan      html  css  js  c++  java
  • java_es

    在查询时过滤掉指定的"_id"的数据

            GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();// 对象池配置类,不写也可以,采用默认配置
            poolConfig.setMaxTotal(20);// 采用默认配置maxTotal是8,池中有8个client
            EsClientPoolFactory esClientPoolFactory = new EsClientPoolFactory();// 要池化的对象的工厂类,这个是我们要实现的类
            GenericObjectPool<TransportClient> clientPool = new GenericObjectPool<>(esClientPoolFactory, poolConfig);// 利用对象工厂类和配置类生成对象池
            TransportClient client = clientPool.borrowObject(); // 从池中取一个对象
    
            IdsQueryBuilder qb = QueryBuilders.idsQuery();
            qb.addIds("AWovvn9TOH-DMBf9QzBp");
    
            BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
            boolQueryBuilder.mustNot(qb);
    
            SearchResponse response = client.prepareSearch("songyan")// 索引
                    .setTypes("data_info")// type
                    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)// 查询类型
                    .setQuery(boolQueryBuilder).execute()// 执行
                    .actionGet();// get
    
            clientPool.returnObject(client);
    通过qb.addIds("AWovvn9TOH-DMBf9QzBp");添加要过滤的id
    对应ES查询语句:
    {
        "query": {
            "bool": {
                "must_not": {
                    "terms": {
                        "_id": ["AWiWMTO5expQvaQPsaXV", "AWiWMTOvexpQvaQPsaXT", "AWiWQKr5expQvaQPsfVd"]
                    }
                }
            }
        }
    }
  • 相关阅读:
    SQL优化,解决系统运行效率瓶颈
    C#中 哪些是值类型 哪些是引用类型
    C#异常类相关总结
    对象 序列化 字节流 传输
    给数组中的每个元素赋值
    对象转化为 xml字符串
    .NET BETWEEN方法
    Datatable To List<Entity>
    ajax原理
    gulp记录
  • 原文地址:https://www.cnblogs.com/excellencesy/p/10731421.html
Copyright © 2011-2022 走看看