模擬mysql,我們需要=、>、>=、<、<= 、or、and、in、like、count、sum、group by、order by、limit
在高版本的es裡面使用了boolquery替換了filter
1、等於號=
querybuilders.termquery(「isdel」,1));
//termquery相當於=,相當於isdel=1
2、大於小於號
querybuilders.rangequery(「overduestarttime」).lte(startdate.gettime())
//rangequery
//lte <=
//lt <
//gte >=
//gt >
3、or、and
boolquerybuilder.must(querybuilders.termquery(「isdel」,req.getis_del()));
//must相當於and
casestatusquery.should(querybuilders.termquery(「casestatus」,s));
//should相當於or
4、in
querybuilders.termsquery(「clientcompanyid」,req.getclientcompanyidlist())
//termquery相當於in,可以傳遞list
5、like
querybuilders.wildcardquery(「phone1」, 「" + req.gettelephone() + "」)
//wildcard 正則匹配
querybuilders.matchphrasequery(「debtorname」, req.getdebtor_name())
//matchphrase 不會分詞,直接匹配有完整相關短語的記錄
6、sum&&count
aggregationbuilder debttotalsum = aggregationbuilders.sum(debt_total_sum_key).field(「debttotal」);
aggregationbuilder debttotalcount = aggregationbuilders.count(debt_total_count_key).field(「debttotal」);
7、order by and limit
searchresponse searchresponse = client.preparesearch(elasticsearchutil.getindexname())
.settypes(elasticsearchutil.type_name)
.setquery(boolquerybuilder)
//指定查詢字段
.addstoredfield(「id」)
.addsort(order, sortorder)
//分頁
.setfrom((currentpage - 1) * limit).setsize(limit)
.execute()
.actionget();
8、批量插入
public void batchinsert(list list,client client) ms」, system.currenttimemillis() - start);
if (!bulkresponse.hasfailures()) {
logger.info("----------案件批量插入成功一輪------------");
常用的mysql查詢條件
查詢時mysql中非常重要的一部分內容。使用where子句對錶中的資料篩選,結果為true的行會出現在結果集中。其中主要包括以下條件 1 比較運算子 等於 大於 大於等於 小於 小於等於 不等於 或 2 邏輯運算子 andor not3 模糊匹配 like 表示任意多個任意字元 表示乙個任意字元 查...
MySQL條件查詢與排序查詢
在select語句後加上where 篩選條件 分類 按條件表示式篩選 條件運算子 按邏輯表示式篩選 邏輯運算子 and or not模糊查詢 like 一般和萬用字元搭配使用 萬用字元 任意多個字元,包含0個字元 任意單個字元 想要搜尋萬用字元要使用轉義 可以使用 escape 轉義 指定轉義符前面...
ES 常用查詢
1.term精確查詢,實際上是包含的意思 用法一 與bool,filter使用 get zf en search 用法二 直接term查詢 get zf en search 2.bulk 批量寫入,注意,必須指定 id,須換行 如果 id存在,執行的是update操作 3.組合查詢,bool 布林 ...