ElasticSearch基本查询一(英文分词)
廢話不多說首先準備數據,我們先添加幾個文檔
PUT /lib3/user/1 { "name" : "zhaoliu","address" :"hei long jiang sheng tie ling shi","age" : 50,"birthday" : "1970-12-12","interests": "xi buan hejiu, duanlian, lvyou" }PUT /lib3/user/2 {"name" :"zhaoming" ,"address" : "bei jing hai dian qu qing he zhen","age" : 20,"birthday" : "1998-10-12" ,"interests": "xi huan hejiu, duanlian, changge" }PUT /lib3/user/3 {"name" : "lisi","address" : "bei jing hai dian qu qing he zhen","age" : 23,"birthday" : "1998-10-12" ,"interests": "xi huan hejiu,duanlian, changge" }PUT /lib3/user/4 {"name": "wangwu","address" : "bei jing hai dian qu qing he zhen","age": 26,"birthday" : "1995-10-12" ,"interests": "xi huan biancheng, tingyinyue, lvyou" }PUT /lib3/user/5 {"name" :"zhangsan","address" : "bei jing chao yang qu","age" : 29,"birthday" : "1988-10-12","interests": "xi huan tingyinyue , changge , tiaowu" }簡單通過name查找lisi這個人的基本信息? GET /lib3/user/_search?q=name:lisi
{"took" : 43,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 1,"max_score" : 0.2876821,"hits" : [{"_index" : "lib3","_type" : "user","_id" : "3","_score" : 0.2876821,"_source" : {"name" : "lisi","address" : "bei jing hai dian qu qing he zhen","age" : 23,"birthday" : "1998-10-12","interests" : "xi huan hejiu,duanlian, changge"}}]} }這個max_score:相關匹配度分數(這是根據ElasticSearch的算法計算出來的)
?
查詢興趣愛好interests喜歡changge(唱歌)的人,并且年齡倒敘排
GET /lib3/user/_search?q=interests:changge&sort=age:desc {"took" : 124,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 3,"max_score" : null,"hits" : [{"_index" : "lib3","_type" : "user","_id" : "5","_score" : null,"_source" : {"name" : "zhangsan","address" : "bei jing chao yang qu","age" : 29,"birthday" : "1988-10-12","interests" : "xi huan tingyinyue , changge , tiaowu"},"sort" : [29]},{"_index" : "lib3","_type" : "user","_id" : "3","_score" : null,"_source" : {"name" : "lisi","address" : "bei jing hai dian qu qing he zhen","age" : 23,"birthday" : "1998-10-12","interests" : "xi huan hejiu,duanlian, changge"},"sort" : [23]},{"_index" : "lib3","_type" : "user","_id" : "2","_score" : null,"_source" : {"name" : "zhaoming","address" : "bei jing hai dian qu qing he zhen","age" : 20,"birthday" : "1998-10-12","interests" : "xi huan hejiu, duanlian, changge"},"sort" : [20]}]} }term和terms查詢(查找zhaoliu這個人的信息)
term query會去倒排索弓|中尋找確切的term,它并不知道分詞器的存在。這種查詢適合keyword、numeric. date.
term:查詢某個字段里含有某個關鍵詞的文檔
GET /lib3/user/_search/ { "query":{ "term": {interests": "changge"}}}
terms:查詢某個字段里合有多個關鍵詞的文檔
GET /ib3/user/_search { "query":{ "terms':{ "interests": ["hejiu","changge']}}
?
查找興趣愛好interests為hejiu?changge的人的信息
GET /lib3/user/_search {"query": {"terms": {"interests": ["hejiu","changge"]}} } {"took" : 56,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 4,"max_score" : 1.0,"hits" : [{"_index" : "lib3","_type" : "user","_id" : "5","_score" : 1.0,"_source" : {"name" : "zhangsan","address" : "bei jing chao yang qu","age" : 29,"birthday" : "1988-10-12","interests" : "xi huan tingyinyue , changge , tiaowu"}},{"_index" : "lib3","_type" : "user","_id" : "2","_score" : 1.0,"_source" : {"name" : "zhaoming","address" : "bei jing hai dian qu qing he zhen","age" : 20,"birthday" : "1998-10-12","interests" : "xi huan hejiu, duanlian, changge"}},{"_index" : "lib3","_type" : "user","_id" : "1","_score" : 1.0,"_source" : {"name" : "zhaoliu","address" : "hei long jiang sheng tie ling shi","age" : 50,"birthday" : "1970-12-12","interests" : "xi buan hejiu, duanlian, lvyou"}},{"_index" : "lib3","_type" : "user","_id" : "3","_score" : 1.0,"_source" : {"name" : "lisi","address" : "bei jing hai dian qu qing he zhen","age" : 23,"birthday" : "1998-10-12","interests" : "xi huan hejiu,duanlian, changge"}}]} }只要含有一個關鍵詞的都會被查詢出來總共四個人有關于hejiu?changge要么changge要么hejiu?要么兩者都
如果我只想取前2個人使用from:0 (表示從第一個文檔開始)? ? ? ?size:2(取2個文檔)
GET /lib3/user/_search {"from":0,"size":2,"query": {"terms": {"interests": ["hejiu","changge"]}} } {"took" : 81,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 4,"max_score" : 1.0,"hits" : [{"_index" : "lib3","_type" : "user","_id" : "5","_score" : 1.0,"_source" : {"name" : "zhangsan","address" : "bei jing chao yang qu","age" : 29,"birthday" : "1988-10-12","interests" : "xi huan tingyinyue , changge , tiaowu"}},{"_index" : "lib3","_type" : "user","_id" : "2","_score" : 1.0,"_source" : {"name" : "zhaoming","address" : "bei jing hai dian qu qing he zhen","age" : 20,"birthday" : "1998-10-12","interests" : "xi huan hejiu, duanlian, changge"}}]} }以上查詢都是沒有版本號的我們要獲取版本號,只需要加一個version:true
GET /lib3/user/_search {"version": true, "query": {"terms": {"interests": ["hejiu","changge"]}} } {"took" : 33,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 4,"max_score" : 1.0,"hits" : [{"_index" : "lib3","_type" : "user","_id" : "5","_version" : 1,"_score" : 1.0,"_source" : {"name" : "zhangsan","address" : "bei jing chao yang qu","age" : 29,"birthday" : "1988-10-12","interests" : "xi huan tingyinyue , changge , tiaowu"}},{"_index" : "lib3","_type" : "user","_id" : "2","_version" : 1,"_score" : 1.0,"_source" : {"name" : "zhaoming","address" : "bei jing hai dian qu qing he zhen","age" : 20,"birthday" : "1998-10-12","interests" : "xi huan hejiu, duanlian, changge"}},{"_index" : "lib3","_type" : "user","_id" : "1","_version" : 1,"_score" : 1.0,"_source" : {"name" : "zhaoliu","address" : "hei long jiang sheng tie ling shi","age" : 50,"birthday" : "1970-12-12","interests" : "xi buan hejiu, duanlian, lvyou"}},{"_index" : "lib3","_type" : "user","_id" : "3","_version" : 1,"_score" : 1.0,"_source" : {"name" : "lisi","address" : "bei jing hai dian qu qing he zhen","age" : 23,"birthday" : "1998-10-12","interests" : "xi huan hejiu,duanlian, changge"}}]} }?
?
?
?
?
總結
以上是生活随笔為你收集整理的ElasticSearch基本查询一(英文分词)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于python读取文件的规则
- 下一篇: 辨析*P++,*(p++),*(++p)