高级查询query
子條查詢 特定字段查詢所有特定值
子條件查詢(Query context Filter context)兩種查詢方式
1)Query context:
在查詢過程中,除了判斷文檔是否滿足查詢條件之外,es還會計算一個_score來標識匹配的程度,旨在判斷目標文檔和查詢條件匹配的有多好(吻合度)。
常用查詢:
全文本查詢 針對文本類型數據
字段級別查詢 針對結構化數據,如數字,日期等
1.全文本查詢:
127.0.0.1/book/_search
{
"query"{ //關鍵詞
"match":{ //模糊查詢關鍵詞
"author":"瓦力"
}
}
}
模糊查詢問題(不精確)
match_phrase //短語句匹配(完全匹配)
{
"query"{ //關鍵詞
"match_phrose":{ //模糊查詢關鍵詞
"author":"瓦力"
}
}
}
完全匹配可能比較嚴,我們會希望有個可調節因子,少匹配一個也滿足,那就需要使用到slop。
{
"query": {
"match_phrase": {
"content" : {
"author" : "我的寶馬多少馬力",
"slop" : 1
}
}
}
}
多個匹配查詢(multi_match)
{
"query": {
"multi_match": {
"query" : "我的寶馬多少馬力", //query信息,要查詢的數據,比如要查詢(我的寶馬多少馬力)
"fields" : ["title", "content"] //指定查詢的字段,關系為或
}
}
}
語法查詢(query_string)
{
"query_string":{
"query": "aaaa"http://指定的查詢內容關鍵詞
}
}
查詢多個數據
{
"query_string":{
"query": "(aaaa) OR python"http://指定的查詢內容關鍵詞,查詢aaa或者python的關鍵詞
}
}
查詢多個字段
{
"query_string":{
"query": "aaaa OR python"http://指定的查詢內容關鍵詞,查詢aaa或者python的關鍵詞
"field":["title","author"]//指定查詢的字段
}
}
2.結構化的查詢:
{
"query":{
"term":{//關鍵詞,具體象
"word_count":1000 //例如字段字數在某個特定值的數值
}
}
}
范圍查詢:
{
"query":{
"range":{//關鍵詞,范圍
"word_count":1000 //指定例如字段word_count字數在某個范圍的數值
"get":1000 //大于等于1000 ge 等于
"lte":2000 //小于等于2000 如時間,2000改為now這個關鍵詞
}
}
}
條件查詢 以一定的邏輯組和子條件查詢
總結
- 上一篇: GO桌面GO锁屏主题制作工具和图解教程
- 下一篇: STM32之触摸屏