ElasticSearch查詢方法(python)

2021-09-11 07:50:04 字數 3299 閱讀 6719

es.search(index=

"my_index"

,doc_type=

"test_type"

)# 或者

body =}}

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

# term

body =}}

# 查詢name="python"的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

# terms

body =}}

# 搜尋出name="python"或name="android"的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

# match:匹配name包含python關鍵字的資料

body =}}

# 查詢name包含python關鍵字的資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

# multi_match:在name和addr裡匹配包含深圳關鍵字的資料

body =}}

# 查詢name和addr包含"深圳"關鍵字的資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =}}

# 搜尋出id為1或2d的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

bool有3類查詢關係,must(都滿足),should(滿足其中之一),must_not(都不滿足)

body =},

}]}}

}# 獲取name="python"並且age=18的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =

}"from":2

# 從第二條資料開始

"size":4

# 獲取4條資料

}# 從第2條資料開始,獲取4條資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =}}

}# 查詢18<=age<=30的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =}}

# 查詢字首為"趙"的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =}}

# 查詢name以id為字尾的所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

body =

}"sort":}

}

響應過濾

# 只需要獲取_id資料,多個條件用逗號隔開

es.search(index=

"my_index"

,doc_type=

"test_type"

,filter_path=

["hits.hits._id"])

# 獲取所有資料

es.search(index=

"my_index"

,doc_type=

"test_type"

,filter_path=

["hits.hits._*"

])

執行查詢並獲取該查詢的匹配數

# 獲取資料量

es.count(index=

"my_index"

,doc_type=

"test_type"

)

獲取最小值
body =},

"aggs":}

}}# 搜尋所有資料,並獲取age最小的值

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

獲取最大值
body =},

"aggs":}

}}# 搜尋所有資料,並獲取age最大的值

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

獲取和
body =},

"aggs":}

}}# 搜尋所有資料,並獲取所有age的和

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

獲取平均值
body =},

"aggs":}

}}# 搜尋所有資料,獲取所有age的平均值

es.search(index=

"my_index"

,doc_type=

"test_type"

,body=body)

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...