一、查詢相關
在es查詢中,must相當於sql語句中的and,should相當於or。當想要實現類似於"select * from table where a and (b or c or d)"的功能時可以借助於es中的bool。即resthighlevelclient中的boolquerybuilder。示例如下:
//先構建乙個bool物件用於存放or相關的條件
if (!stringutils.isempty(realname))
if(!stringutils.isempty(orgcode))
//and條件可以選擇match_phrase短語查詢
querybuilder wclass = querybuilders.matchphrasequery("source_ke", "sentiment");
//將所有條件再組裝到乙個bool物件中
boolquerybuilder boolbuilder = querybuilders.boolquery();
boolbuilder.must(boolquerybuilder);
boolbuilder.must(wclass);
searchsourcebuilder builder = new searchsourcebuilder();
builder.query(boolbuilder)
根據時間範圍作資料過濾時,通過rangequerybuilder和filter完成
searchsourcebuilder builder = new searchsourcebuilder();
rangequerybuilder timequery = querybuilders.rangequery("ctime");
if (!stringutils.isempty(infolistquery.getstarttime()))
if (!stringutils.isempty(infolistquery.getendtime()))
builder.postfilter(timequery);
使用es聚合函式獲得統計值
//指定要聚合計算的字段,並為結果指定名稱
termsaggregationbuilder field = aggregationbuilders.terms("sentimentgroup").field("sentiment");
searchsourcebuilder builder = new searchsourcebuilder();
//不需要檢視詳細內容
builder.query(boolbuilder).aggregation(field).size(0);
//請求物件攜帶條件,查詢型別,一般預設即可
searchrequest searchrequest = new searchrequest(tcesidx).types(tcestype);
searchrequest.source(builder).searchtype(searchtype.default);
try else if ("1".equals(bucket.getkeyasstring())) else
}
執行獲取es查詢結果
//根據發布時間降序排列
sortbuilder sortbuilder = sortbuilders.fieldsort("ctime").order(sortorder.desc);
builder = builder.sort(sortbuilder);
//指定頁碼
builder.from((infolistquery.getpageno()-1)*infolistquery.getpagesize()).size(infolistquery.getpagesize());
try
}}//獲得查詢條件下的總的個數
searchresponse searchresponsetotal = resthighlevelclient.search(searchrequesttotal);
result.settotal(searchresponsetotal.gethits().gettotalhits());
執行查詢結果中的返回字段
builder2.query(wclass).from(0).size(integer.valueof(string.valueof(total))).fetchsource("include", "");
二、刪除相關
查詢資料後根據_id欄位執行刪除操作
searchresponse response = resthighlevelclient.search(searchrequest);
searchhits hits = response.gethits();
listdocids = new arraylist<>(hits.gethits().length);
for (searchhit hit : hits)
//bulkrequest bulkrequest = new bulkrequest();
//根據id進行刪除
for (string id : docids)
三、初始化
引入m**en依賴
org.elasticsearch.client
elasticsearch-rest-high-level-client
6.4.2
org.elasticsearch
elasticsearch
org.elasticsearch.client
elasticsearch-rest-client
org.elasticsearch
elasticsearch
6.4.2
org.elasticsearch.client
elasticsearch-rest-client
6.4.2
es配置類
// 配置連線時間延時
public void setconnecttimeoutconfig());
}// 使用非同步httpclient時設定併發連線數
通過ActiveProcessLinks遍歷程序
程序的遍歷有多種方法。在應用程式裡可以使用createtoolhelp32snapshot函式先做個程序快照 snapshot 然後通過返回的資料進行遍歷。在核心程式設計裡可以通過核心資料結構來實現。核心結構eprocess 執行體程序塊 executive process 是乙個不透明 opaqu...
IEEE PDF eXpress 通過方法
ieee pdf express這個東西比較煩人 文章是用latex寫的,生成pdf後始終是不能通過 原因是有些文字無法嵌入到pdf中的,本人之前的解決方法是把所有檔案打包生成zip後上傳,讓ieee來生成pdf 但這次一直不行,不過最後找到了乙個非常簡單的方法 安裝pdfcreater,之後列印生...
如何通過dba hist active sess
背景 在很多情況下,當資料庫發生效能問題的時候,我們並沒有機會來收集足夠的診斷資訊,比如system state dump或者hang analyze,甚至問題發生的時候dba根本不在場。這給我們診斷問題帶來很大的困難。那麼在這種情況下,我們是否能在事後收集一些資訊來分析問題的原因呢?在oracle...