Elasticearch JAVA APIを介してDSL JSONを直接使用して問合せを行う

1058 ワード

具体的なコードの例は次のとおりです.
		StringBuffer dsl = new StringBuffer();
		dsl.append("{\"bool\": {");
		dsl.append("      \"must\": [");
		dsl.append("        {");
		dsl.append("          \"term\": {");
		dsl.append("            \"mdid.keyword\": {");
		dsl.append("              \"value\": \"2fa9d41e1af460e0d47ce36ca8a98737\"");
		dsl.append("            }");
		dsl.append("          }");
		dsl.append("        }");
		dsl.append("      ]");
		dsl.append("    }");
		dsl.append("}");
		WrapperQueryBuilder wqb = QueryBuilders.wrapperQuery(dsl.toString());
		SearchResponse searchResponse = client.prepareSearch(basicsysCodeManager.getYjzxYjxxIndex())
		.setTypes(basicsysCodeManager.getYjzxYjxxType()).setQuery(wqb).setSize(10).get();
		SearchHit[] hits = searchResponse.getHits().getHits();
		for(SearchHit hit : hits){
			String content = hit.getSourceAsString();
			System.out.println(content);
		}