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中的日期时间处理
    查询时间的测试
    group by 和 聚合函数的使用
    比较版本号
    sql IIF函数的应用
    win10系统杀毒功能
    php性能的问题
    linux 下ab压力测试
    datatables的学习总结
  • 原文地址:https://www.cnblogs.com/excellencesy/p/10731421.html
Copyright © 2011-2022 走看看