0
Logstash 및 ElasticSearch를 처음 사용했습니다. 스프링 데이터 (ElasticsearchRepository
) 또는 ElasticsearchTemplate
을 사용하여 ElasticSearch에 저장된 로그를 읽으 려합니다.Spring을 사용한 ElasticSearch 쿼리
는 Elasticsearch에서 로그 항목은 다음과 같습니다
@Document(indexName = "logstash-2016.08.19")
public class Logstash {
@Id
private String _id;
private String _index;
private String _type;
private Integer _score;
private Source _source;
/* getters & setters */
}
및
public class Source {
private String message;
private String host;
private Integer priority;
private String timestamp8601;
private String logsource;
private String program;
private String pid;
private Integer severity;
private Integer facility;
private String facility_label;
private String severity_label;
/* getters & setters */
}
: 로그 항목의 JSON 데이터를 바탕으로
{
"_index": "logstash-2016.08.19",
"_type": "logs",
"_id": "AVagGzQ4GS5SuLe66qxR",
"_score": 1.0,
"_source": {
"message": "Aug 19, 2016 12:02:32 AM com.example.server.MOM$2 handleDelivery\n",
"@version": "1",
"@timestamp": "2016-08-19T00:02:32.000Z",
"host": "10.x.x.x",
"priority": 11,
"timestamp8601": "2016-08-19T00:02:32Z",
"logsource": "a094b35d71da",
"program": "xxx-router_1",
"pid": "2424",
"severity": 3,
"facility": 1,
"timestamp": "2016-08-19T00:02:32Z",
"facility_label": "user-level",
"severity_label": "Error"
}
}
, 나는 다음과 같은 자바 클래스를 생성
그런 다음 데이터를 쿼리하려고합니다.이 예제에서는 지정된 ID로 로그를 가져옵니다. 내가 쿼리의 다양한 조합을 시도했지만, 내가 얻을 수있는 모든 빈 개체 또는 배열입니다. 실제 물체를 되 찾으려하지 않았습니다 ... 또한 스프링의 ElasticsearchRepository
을 시도해 보았습니다. 어떤 도움에 감사드립니다
@RestController
public class TestController {
@Autowired
ElasticsearchTemplate elt;
@RequestMapping(value = "/e", method = RequestMethod.GET)
public List<Logstash> elasticSearch() {
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
.withFilter(QueryBuilders.boolQuery().should(QueryBuilders.termQuery("_id", "AVagGzQ4GS5SuLe66qxR")))
.build();
return elt.queryForList(searchQuery, Logstash.class);
}
}
=)
감사처럼해야하지만, 난 여전히 빈 상태 (empty)의 배열을 다시 얻을. :-( – Daniel
이 문제를 해결하기 위해 추가 정보를 제공 할 수 있다면 알려주십시오.이 두 번째 날은 내가 Elasticsearch를 사용하고 있기 때문에 제 개요가 약간 제한적입니다 .. – Daniel
'withFilter()' 호출? – Val