一個通過http請求對elasticsearch進行數據查詢或操作的項目
在之前的項目中,一直使用mybatis,習慣了使用sql語句進行查詢和處理數據,當切換到elasticsearch數據源后,發現需要通過其對應的高級編程接口對數據進行操作和查詢,而且返回結果一層一層的,光解析數據,都挺麻煩,故而參考mybatis方式,自己針對http請求進行了一個封裝,在kibana中編寫查詢語句,然后復制作為查詢語言(類似mysql中的sql語句),然后對查詢結果進行解析定義,框架進行自動解析。
<?xml version="1.0" encoding="UTF-8" ?> <elasticsearch> <dsl id="getDataList" esIndex="forecast_city_hour_air" parseResult="hits.hits[]._source->[aqi,pm10,pm25,so2,no2,co,o3,o38,quality,city,city_code,province,province_code]"> { "query": { "bool": { "must": [ { "term": { "remark.keyword": { "value": #{remark} } } } ] } }, "size": #{size} } </dsl> </elasticsearch>
在java中采用這種寫法就可以直接得到想要的數據,不用自己解析,詳情請參考:https://github.com/TheoryDance/esoperator