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(); }
(23)ElasticSearch java项目中查询所有字段筛选文档——queryStringQuery和simpleQueryStringQuery
原文:https://www.cnblogs.com/javasl/p/12081805.html