Elasticsearch查詢的基本使用

2021-09-29 17:58:59 字數 1544 閱讀 4096

#初始化準備(建立庫和user)

#建立表

put /libzyh

「settings」:,

「address」: ,

「age」: ,

「interests」: ,

「birthday」:

#新增user

put /libzyh/user/1

put /libzyh/user/6

#from size 相當於sql語句中的limit

get /libzyh/user/_search/

#顯示資料的版本

get /libzyh/user/_search/

#匹配name為lisi的

get /libzyh/user/_search/

}#查詢user表中的所有

get /libzyh/user/_search/}}

#多個匹配,query:匹配詞語,field在哪個區域查詢

get /libzyh/user/_search}}

#中的所有分詞,並且保證各個分詞的相對位置不變:,匹配interests欄位中同時含有這兩個詞的user

get libzyh/user/_search

}}#返回指定欄位address,和name

get /libzyh/user/_search}}

#控制載入字段

get /libzyh/user/_search

「_source」:

}#還可以使用萬用字元*

get /libzyh/user/_search}}

delete lib3

#按照年齡的公升序排序

get /libzyh/user/_search

「sort」: [

「age」:

#filter查詢

#filter是不計算相關性的,同時可以cache。因此,filter速度要快於query。測試,先建立乙個表

delete /lib12

post /lib12/items/_bulk}}

}}}#過濾出**為40的所有結果

get /lib12/items/_search

{「post_filter」: {

「term」: {

「price」: 40

#過濾出**是25或40的所有結果

get /lib12/items/_search

{「post_filter」: {

「terms」: {

「price」: [25,40]

#因為itemid被分詞索引了,如果使 term.需要加.keyword

get /lib12/items/_search

{「post_filter」: {

「term」: {

「itemid.keyword」: 「id100123」

#同上而match則不用

get /lib12/items/_search

{「post_filter」: {

「match」: {

「itemid」: 「id100123」

ElasticSearch 翻頁查詢

相對於ealsticsearch的search api,翻頁查詢可以將查詢結果集分頁返回,而不是將所有的結果放在乙個page返回。如果查詢的結果集包含大量的資料,就可以用到翻頁查詢 scroll api,比如有200k條資料,可以將它們分成20次請求,每次只返回10k條查詢結果.有點類似於資料庫裡面...

ElasticSearch 查詢語法

author title publish date form指定從 返回 size指定返回數量 from 1 size 1 sort group by publish date 特定字段查詢所指特定值 query context 會根據匹配程度生成不同的匹配分數 全文本查詢針對文字型別 字段級別查詢...

elasticsearch高亮查詢

pageinfo elasticsearchtemplate.queryforpage query,article.class 帶條件的分頁查詢 test public void testselectpagebyid 建立querybuilder查詢條件 querybuilder querybuil...