elasticsearch Terms Query 实现类似于sql in查询

pom.xml:

<dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>6.1.0</version>
        </dependency>

代码:

复制代码
import com.alibaba.fastjson.JSON;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.util.HashSet;
import java.util.Set;


public class EsToHdfs {
    public static void main(String[] args) throws Exception {
        Settings settings = Settings.builder().put("cluster.name", "NEIMENG_ES").build();
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.26.82"), 9301))
                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.26.83"), 9301));
        Set set = new HashSet<String>();set.add("50338118");
        set.add("67108867");
        set.add("67109804");
        set.add("67112880");
        set.add("67112989");
        BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
        boolQuery.must(QueryBuilders.termsQuery("x_imsi", set));

        SearchResponse response = client.prepareSearch("neimeng_vpn_202001191559").setTypes("doc").setQuery(boolQuery)
                .setSize(10000).execute().actionGet();
for (SearchHit hit : response.getHits().getHits()) {
            System.out.println("x_imsi:" + hit.getSourceAsMap().get("x_imsi") + ", x_sip:" + hit.getSourceAsMap().get("x_sip") + ", seraddr_s:" + hit.getSourceAsMap().get("seraddr_s"));
        }//on shutdown
        client.close();
    }


}
复制代码

kibana:

复制代码
{
  "query": {
    "terms": {
      "x_imsi": [
         "50332823"
        ,"67108867"
        ,"67109804"
        ,"67112880"
        ,"67112989"
      ]
    }
  },
  "_source": ["x_imsi","x_sip","seraddr_s"]
}
复制代码

 

posted @   所向披靡zz  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示