Elasticsearch からのデータを検索する Java アプリを構築しています (データは kafka から logstash に、次に Elasticsearch に json 形式で送信されます)。私が使用するQueryBuilders.queryStringQuery(reqId)
と、すべての結果が問題なく返さQueryBuilders.termQuery("routingRequestID", reqId);
れますが、reqId が ES データに存在する場合でも、使用すると 0 ヒットが返されます。
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));
@GetMapping("/q/{reqId}")
public String searchByReqId(@PathVariable("reqId") final String reqId) throws IOException {
String[] indexes = {"devglan-log-test"};
QueryBuilder queryBuilder = QueryBuilders.termQuery("routingRequestID", reqId);
// QueryBuilder queryBuilder = QueryBuilders.queryStringQuery(reqId);
SearchSourceBuilder searchSource = SearchSourceBuilder.searchSource().query(queryBuilder).from(0).size(1000);
System.out.println(searchSource.query());
SearchRequest searchRequest = new SearchRequest(indexes, searchSource);
System.out.println(searchRequest.source().toString());
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
System.out.println(searchResponse.toString());
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
for (SearchHit hit : searchHits) {
System.out.println(hit.toString());
}
return "success";
}
{
took: 633,
timed_out: false,
_shards: {
total: 1,
successful: 1,
skipped: 0,
failed: 0
},
hits: {
total: {
value: 1,
relation: "eq"
},
max_score: 1.6739764,
hits: [
{
_index: "devglan-log-test",
_type: "_doc",
_id: "k4qAPXEBCzyTR4XVXPb2",
_score: 1.6739764,
_source: {
@version: "1",
message: "
{"requestorRole":"role3", "requestorGivenName":"doe", "requestorSurName":"male",
"requestorOrganizationName":"dob", "reqd":"address",
"requestorC":"city", "routingRequestID":"7778787898778879"}",
@timestamp: "2020-04-03T00:45:53.917Z"
}
}
]
}
}
によって生成されたクエリsearchSource.query()
:
{
"term" : {
"routingRequestID" : {
"value" : "2421",
"boost" : 1.0
}
}
}
で生成されたクエリsearchRequest.source().toString()
:
{"from":0,"size":1000,"query":{"term":{"routingRequestID":{"value":"2421","boost":1.0}}}}
結果:
{"took":0,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":0,"relation":"eq"},"max_score":null,"hits":[]}}
すべてのヘルプは本当に感謝しています。サポート方法がわかっている場合は、投稿をスキップしないでください。*ハイタッチ絵文字*