最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch之基本查詢及組合查詢操作示例

 更新時間:2022年04月19日 17:54:57   作者:Jeff的技術(shù)棧  
這篇文章主要為大家介紹了Elasticsearch之基本查詢及組合查詢操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Elasticsearch查詢

查詢分類:

基本查詢:使用es內(nèi)置查詢條件進行查詢

組合查詢:把多個查詢組合在一起進行復(fù)合查詢

過濾:查詢的同時,通過filter條件在不影響打分的情況下篩選數(shù)據(jù)

一 基本查詢

#添加映射
PUT lago
{
  "mappings": {
    "properties":{
      "title":{
        "stort":true,
        "type":"text",
        "analyzer":"ik_max_word"
      },
      "company_name":{
         "stort":true,
        	"type":"keyword",
      },
      "desc":{
        "type":"text"
      },
      "comments":{
        "type":"integer"
      },
      "add_time":{
        "type":"date",
        "format":"yyy-MM-dd"
      }
    }
  }
}
#測試數(shù)據(jù)
POST lago/job
{
  "title":"python django 開發(fā)工程師",
  "company_name":"美團科技有限公司",
  "desc":"對django熟悉,掌握mysql和非關(guān)系型數(shù)據(jù)庫,網(wǎng)站開發(fā)",
  "comments:200,
  "add_time":"2018-4-1"
}
POST lago/job
{
  "title":"python數(shù)據(jù)分析",
  "company_name":"百度科技有限公司",
  "desc":"熟悉python基礎(chǔ)語法,熟悉數(shù)據(jù)分析",
  "comments:5,
  "add_time":"2018-10-1"
}
POST lago/job
{
  "title":"python自動化運維",
  "company_name":"上海華為",
  "desc":"熟悉python基礎(chǔ)語法,精通Linux",
  "comments:90,
  "add_time":"2019-9-18"
}

1.1 match查詢

GET lagou/job/_search
{
  "query":{
    "match":{
      "title":"python"
    }
  }
}
#因為title字段做了分詞,python都能搜索出來
#搜索python網(wǎng)站也能搜索出來,把python和網(wǎng)站分成兩個詞
#搜索爬取也能搜索到,把爬和取分詞,去搜索
#只搜取 搜不到

1.2 term查詢

GET lagou/_search
{
  "query":{
    "term":{
      "title":"python"
    }
  }
}
#會拿著要查詢的詞不做任何處理,直接查詢
#用python爬蟲,查不到,用match就能查到
{
  "query":{
    "term":{
      "company_name":"美團"
    }
  }
}
#通過美團,就查詢不到

1.3 terms查詢

GET lagou/_search
{
  "query":{
    "terms":{
      "title":["工程師","django","運維"]
    }
  }
}
#三個詞,只要有一個,就會查詢出來

1.4 控制查詢的返回數(shù)量(分頁)

GET lagou/_search
{
  "query":{
    "match":{
      "title":"python"
    }
  },
  "form":1,
  "size":2
}
#從第一條開始,大小為2

1.5 match_all 查詢

GET lagou/_search
{
  "query":{
    "match_all":{}
  }
}
#所有數(shù)據(jù)都返回

1.6 match_phrase查詢

GET lagou/_search
{
  "query":{
    "match_phrase":{
      "title":{
        "query":"python系統(tǒng)",
        "slop":6
      }
    }
  }
}
#短語查詢, 
#會把查詢條件python和系統(tǒng)分詞,放到列表中,再去搜索的時候,必須滿足python和系統(tǒng)同時存在的才能搜出來
#"slop":6 :python和系統(tǒng)這兩個詞之間最小的距離

1.7 multi_match

GET lagou/_search
{
  "query":{
    "multy_match":{
   			"query":"python",
      	"fields":["title","desc"]
    }
  }
}
#可以指定多個字段
#比如查詢title和desc這個兩個字段中包含python關(guān)鍵詞的文檔
#"fields":["title^3","desc"]:權(quán)重,title中的python是desc中的三倍

1.8 指定返回的字段

GET lagou/_search
{
  "query":{
    "stored_fields":["title","company_name"]
    "match":{
   			"title":"python"
    }
  }
}
#只返回title和company_name字段
#"stored_fields":["title","company_name",'dsc'],不會返回dsc,因為我們要求stroed_fields,之前desc字段設(shè)為false(默認(rèn)),不會顯示

1.9 sort 結(jié)果排序

GET lagou/_search
{
  "query":{
 			"match_all":{}
  },
  "sort":[
    {
      "comments":{
        "order":"desc"
      }
    }
  ]
}
#查詢所有文檔,按comments按desc降序排序

1.10 range范圍查詢

GET lagou/_search
{
  "query":{
 			"range":{
        "comments":{
          "gte":10,
          "lte":20,
          "boost":2.0
        }
      }
  }
}
#指定comments字段大于等于10,小于等于20
#boost:權(quán)重
GET lagou/_search
{
  "query":{
 			"range":{
        "add_time":{
          "gte":"2019-10-11",
          "lte":"now",
        }
      }
  }
}
#對時間進行查詢

1.11 wildcard查詢

GET lagou/_search
{
  "query":{
    "wildcard":{
      "title":{
        "value":"pyth*n",
        "boost":2.0
      }
    }
  }
}
#模糊查詢,title中,有pyth任意值n得都能查出來

1.12 exists存在

exists:字段包含,存在的
# 包含followers_count字段
GET user_toutiao/_search
{
  "query": {
      "bool": {
        "must": [
          {"exists": {
            "field": "followers_count"
          }}
        ]
      }
  }
}
# 不包含followers_count字段
GET user_toutiao/_count
{
  "query": {
      "bool": {
        "must_not": [
          {"exists": {
            "field": "followers_count"
          }}
        ]
      }
  }
}
# 不包含followers_count且updata_timestamp>1614221216
GET user_toutiao/_count
{
  "query": {
      "bool": {
        "must_not": [
          {
            "exists": {
              "field": "followers_count"
            }
          }
        ],
        "must": [
          {"range": {
            "updata_timestamp": {
              "gt": 1614221216
            }
          }}
        ]
      }
  }
}

二 組合查詢

2.1 bool查詢

#bool查詢包括must should must_not filter
'''
bool:{
	"filter":[],   字段過濾
	"must":[],     所有查詢條件都滿足
	"should":[],   滿足一個或多個
	"must_not":{}  都不滿足于must相反
}
'''
# 建立測試數(shù)據(jù)
POST lago/testjob/_bulk
{"index":{"_id":1}}
{"salary":10,"title":"Python"}
{"index":{"_id":2}}
{"salary":20,"title":"Scrapy"}
{"index":{"_id":3}}
{"salary":30,"title":"Django"}
{"index":{"_id":4}}
{"salary":30,"title":"Elasticsearch"}

2.2 簡單過濾查詢

#select * from testjob where salary=20
GET lagou/testjob/_search
{
  "query":{
    	"bool":{
        "must":{
          "match_all":{}
        },
        "filter":{
          "term":{
            "salary":20
          }
        }
      }
  }
}

2.3 查詢多個值

#查詢薪資是10k或20k的
GET lagou/testjob/_search
{
  "query":{
    	"bool":{
        "must":{
          "match_all":{}
        },
        "filter":{
          "terms":{
            "salary":[10,20]
          }
        }
      }
  }
}
#select * from testjob where title="python"
GET lagou/testjob/_search
{
  "query":{
    	"bool":{
        "must":{
          "match_all":{}
        },
        "filter":{
          "term":{
            "title":"Python"
          }
        }
      }
  }
}
#title 是text字段,會做大小寫轉(zhuǎn)換,term不會預(yù)處理,拿著大寫Python去查查不到
#可以改成小寫,或者用match來查詢
'''
   "filter":{
          "match":{
            "title":"Python"
          }
        }
'''
#查看分析器解析結(jié)果
GET _analyze
{
  "analyzer":"ik_max_word",
  "text":"python網(wǎng)絡(luò)開發(fā)工程師"
}

2.4 bool過濾查詢,可以做組合過濾查詢

#select * from testjob where (salary=20 or title=Python) and (salary!=30)
#查詢薪資等于20k或者工作為python的工作,排除價格為30k的
{
  "query":{
    "bool":{
      "should":[
        {"term":{"salary":20}},
        {"term":{"title":"python"}}
      ],
      "must_not":{
        "term":{"salary":30}
      }
    }
  }
}
#select * from testjob where title=python or (title=django and salary=30)
{
  "query":{
    "bool":{
      "should":[
        {"term":{"title":"python"}},
        {
          "bool":{
            "must":[
              {"term":{"title":"django"}},
              {"term":{"salary":30}}
            ]
          }
        }
      ]
    }
  }
}

以上就是Elasticsearch之基本查詢及組合查詢操作示例的詳細內(nèi)容,更多關(guān)于Elasticsearch基本查詢組合查詢的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文讀懂吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)概念

    一文讀懂吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)概念

    這篇文章主要介紹了吞吐量(TPS)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)概念,在開發(fā)中需要先搞懂這些基礎(chǔ)知識,才能更好運用,需要的朋友可以參考下
    2020-07-07
  • skynet.rawcall使用應(yīng)用場景分析

    skynet.rawcall使用應(yīng)用場景分析

    skynet.rawcall 是 Skynet 框架中用于直接傳遞原始二進制數(shù)據(jù)的低級通信接口,適用于需要繞過自動序列化/反序列化、手動控制內(nèi)存或?qū)崿F(xiàn)高性能傳輸?shù)膱鼍?下面給大家介紹skynet.rawcall使用應(yīng)用場景分析,感興趣的朋友一起看看吧
    2025-04-04
  • VSCode各語言運行環(huán)境配置方法示例詳解

    VSCode各語言運行環(huán)境配置方法示例詳解

    這篇文章主要介紹了VSCode各語言運行環(huán)境配置方法,本文通過實例代碼給大家介紹的非常詳細,對大家介紹的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • SSO單點登錄和OAuth2.0區(qū)別小結(jié)

    SSO單點登錄和OAuth2.0區(qū)別小結(jié)

    很多時候我們會使用單點登錄SSO或者OAuth2.0等身份驗證和授權(quán)來實現(xiàn)登錄,本文主要介紹了SSO單點登錄和OAuth2.0區(qū)別小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 如何免費獲取 Jetbrain 全家桶使用兌換碼的正確姿勢(推薦)

    如何免費獲取 Jetbrain 全家桶使用兌換碼的正確姿勢(推薦)

    這篇文章主要介紹了免費獲取 Jetbrain 全家桶使用兌換碼的正確姿勢(推薦),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 使用MobaXterm連接到遠程服務(wù)器的圖文教程

    使用MobaXterm連接到遠程服務(wù)器的圖文教程

    這篇文章主要為大家詳細為大家介紹了如何使用MobaXterm連接到遠程服務(wù)器,文中通過圖文進行了詳細的講解,有需要的小伙伴可以參考一下
    2023-09-09
  • jenkins通過sshPut傳輸文件時報錯Permission?denied的SftpException的問題及解決方案

    jenkins通過sshPut傳輸文件時報錯Permission?denied的SftpException的問題及解決

    使用jenkins的ssh插件傳輸文件至遠程機器的指定目錄,php程序打包后,經(jīng)過zip壓縮為oms.zip,這篇文章主要介紹了jenkins通過sshPut傳輸文件的時候,報錯Permission?denied的SftpException,需要的朋友可以參考下
    2023-08-08
  • SHA:安全散列算法簡析 附實例

    SHA:安全散列算法簡析 附實例

    SHA (Secure Hash Algorithm,譯作安全散列算法) 是美國國家安全局 (NSA) 設(shè)計,美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST) 發(fā)布的一系列密碼散列函數(shù)
    2020-06-06
  • idea自動生成UML圖的實現(xiàn)圖文教程

    idea自動生成UML圖的實現(xiàn)圖文教程

    UML是一種很重要的分析源碼工具,本文主要介紹了idea自動生成UML圖的實現(xiàn)圖文教程,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 完美解決DeepSeek服務(wù)器繁忙問題

    完美解決DeepSeek服務(wù)器繁忙問題

    文章介紹解決DeepSeek服務(wù)器繁忙問題的三種方案用戶端即時優(yōu)化、高級技術(shù)方案和替代方案,用戶端方案包括使用網(wǎng)絡(luò)加速工具和錯峰使用策略,高級技術(shù)方案涉及本地化部署和通過第三方平臺調(diào)用模型,替代方案推薦使用納米AI搜索、硅基流動和秘塔AI等工具,感興趣的朋友一起看看
    2025-02-02

最新評論

阳春市| 西平县| 天祝| 福安市| 同江市| 亚东县| 平安县| 积石山| 休宁县| 东阳市| 赣州市| 南城县| 绵阳市| 九寨沟县| 六枝特区| 三门峡市| 岑溪市| 商丘市| 金沙县| 藁城市| 咸宁市| 灵台县| 桐乡市| 合川市| 天津市| 龙口市| 兴海县| 布尔津县| 宁都县| 顺平县| 昆山市| 怀仁县| 沙河市| 罗平县| 金昌市| 襄樊市| 永嘉县| 互助| 清丰县| 石台县| 黄龙县|