elasticsearch QueryBuilder with dynamic list value in term query

后端 未结 2 1573
南旧
南旧 2021-02-04 15:29

I have a code like below where I\'m doing multiple must in bool query. Here I\'m passing the must term queries in field \"address\". Now the ip address will come to me as a list

2条回答
  •  抹茶落季
    2021-02-04 15:35

    You can use the terms query to pass multiple values for single field. create a string array or set. and pass it to the terms query.

      Set address = new HashSet();
      address.add("10.203.238.138");
      address.add("10.203.238.137");
      address.add("10.203.238.136");
      if(address!=null)
         QueryBuilder qb = QueryBuilders.boolQuery()
                    .must(QueryBuilders.termsQuery("address",address))
                    .mustNot(QueryBuilders.termQuery("address", "10.203.238.140"))
                    .should(QueryBuilders.termQuery("client", ""));
      else
         QueryBuilder qb = QueryBuilders.boolQuery()
                    .mustNot(QueryBuilders.termQuery("address", "10.203.238.140"))
                    .should(QueryBuilders.termQuery("client", ""));
    

    Hope it helps..!

提交回复
热议问题