(23)ElasticSearch java項目中查詢所有字段篩選文檔——queryStringQuery和simpleQueryStringQuery


  1、查詢所有字段中含有changge且不含有hejiu的文檔

@Test
    public void testQueryStringQuery() throws IOException, InterruptedException, ExecutionException {
        //指定集群
        Settings settings = Settings.builder().put("cluster.name","my-application").build(); 
        //創建客戶端
        TransportClient client = new PreBuiltTransportClient(settings)
                                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.43.151"),9300));
        //創建查詢對象,查詢所有字段中含有changge且不含有hejiu的文檔
        QueryBuilder qb = QueryBuilders.queryStringQuery("+changge -hejiu");
        //執行查詢
        SearchResponse sr = client.prepareSearch("lib3")
                                  .setQuery(qb)
                                  .get();
        //獲取結果
        SearchHits hits = sr.getHits();
        for(SearchHit hit:hits) {
            //輸出json
            System.out.println(hit.getSourceAsString());
            //輸出json的key與value
            Map<String, Object> map = hit.getSourceAsMap();
            for(String key:map.keySet()) {
                System.out.println(key+"="+map.get(key));
            }
        }
        client.close();
   }

  2、查詢所有字段中含有changge或者不含有hejiu的文檔

@Test
    public void testSimpleQueryStringQuery() throws IOException, InterruptedException, ExecutionException {
        //指定集群
        Settings settings = Settings.builder().put("cluster.name","my-application").build(); 
        //創建客戶端
        TransportClient client = new PreBuiltTransportClient(settings)
                                .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.43.151"),9300));
        //創建查詢對象,查詢所有字段中含有changge或者不含有hejiu的文檔
        QueryBuilder qb = QueryBuilders.simpleQueryStringQuery("+changge -hejiu");
        //執行查詢
        SearchResponse sr = client.prepareSearch("lib3")
                                  .setQuery(qb)
                                  .get();
        //獲取結果
        SearchHits hits = sr.getHits();
        for(SearchHit hit:hits) {
            //輸出json
            System.out.println(hit.getSourceAsString());
            //輸出json的key與value
            Map<String, Object> map = hit.getSourceAsMap();
            for(String key:map.keySet()) {
                System.out.println(key+"="+map.get(key));
            }
        }
        client.close();
   }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM