筆記 elasticsearch在專案中的使用需求

2021-08-10 21:44:06 字數 1818 閱讀 4705

(摘抄自公司大牛的筆記,自己總結一下)

模擬mysql,我們需要=、>、>=、<、<= 、or、and、in、like、count、sum、group by、order by、limit

在高版本的es裡面使用了boolquery替換了filter

querybuilders.termquery("isdel",1));

//termquery相當於=,相當於isdel=1

querybuilders.rangequery("overduestarttime").

lte(startdate.gettime())

//rangequery

//lte <=

//lt <

//gte >=

//gt >

boolquerybuilder.must(querybuilders.termquery("isdel",req.getis_del()));

//must相當於and

casestatusquery.should(querybuilders.termquery("casestatus",s));

//should相當於or

querybuilders.termsquery("clientcompanyid",req.getclientcompanyidlist())

//termquery相當於in,可以傳遞list

querybuilders.wildcardquery("phone1", "*" + req.gettelephone() + "*")

//wildcard 正則匹配

querybuilders.matchphrasequery("debtorname", req.getdebtor_name())

//matchphrase 不會分詞,直接匹配有完整相關短語的記錄

aggregationbuilder debttotalsum = aggregationbuilders.sum(debt_total_sum_key).field("debttotal");

aggregationbuilder debttotalcount = aggregationbuilders.count(debt_total_count_key).field("debttotal");

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();

public  void batchinsert(listlist,client client) ms", system.currenttimemillis() - start);

if (!bulkresponse.hasfailures())

}

Elasticsearch 學習筆記

參考 關係型資料庫 elasticsearch 資料庫database索引index,支援全文檢索 表table型別type 資料行row文件document,但不需要固定結構,不同文件可以具有不同字段集合 資料列column字段field 模式schema 索引字段型別numeric dataty...

ElasticSearch學習筆記

2 解壓檔案unzip master.zip 3 允許外掛程式鏈結es,開啟跨域,需要修改elasticsearch的配置檔案elasticsearch.yml,檔案新增兩行 複製 4 進入elasticsearch目錄,啟動elasticsearch.bin elasticsearch 5 安裝e...

elasticsearch筆記 其他

put movies name plot put index doc 1 get index search put index put index doc 1 get index search get twitter search put index put index put index put ...