基本查询(Query查询中文)
生活随笔
收集整理的這篇文章主要介紹了
基本查询(Query查询中文)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
查詢語句:?
GET /lib4/user/_search {"query": {"term": {"interests":"唱歌"}} }#terms:查詢某個字段里含有多個關鍵詞的文檔 GET /lib4/user/_search {"query":{"terms":{"interests": ["喝酒","唱歌"]}} }?數據準備:
#2.7.1數據準備 PUT /lib4 { "settings":{"number_of_shards" : 3, "number_of_replicas" :0},"mappings":{"user":{"properties":{"name": {"type":"text","analyzer":"ik_max_word"}, "address": {"type":"text","analyzer": "ik_max_word"},"age": {"type" :"integer"},"interests": {"type":"text","analyzer": "ik_max_word"},"birthday": {"type":"date"}}}} }?
#ik芾有兩個分詞器 #ik_max_word :會將文本做最細粒度的拆分;盡可能多的拆分出詞語 #ik_smart:會做最粗粒度的斥分;已被分出的詞語將不會再次被其它詞語占有 #2.7.2 term查詢和terms查詢 #term query會去倒排索引中尋找確切的term,它并不知道分詞器的存在。 #這種查詢適合keyword、numeric、date. #term:查詢某個字段里含有某個關鍵詞的文檔添加5個文檔:?
PUT /lib4/user/1 {"name" : "趙六","address" : "黑龍江省 鐵嶺","age" : 50,"birthday" : "1970-12-12","interests": "喜歡喝酒,鍛煉,說相聲" }PUT /lib4/user/2 {"name" :"趙明","address" :"北京海淀區清河","age" : 20,"birthday" : "1998-10-12" ,"interests": "喜歡喝酒,鍛煉,唱歌" }PUT /lib4/user/3 {"name" : "lisi","address" :"北京海淀區清河","age" : 23,"birthday" : "1998-10-12","interests": "喜歡喝酒,鍛煉,唱歌" }PUT /lib4/user/4 {"name" :"王五","address" : " 北京海淀區清河","age" : 26,"birthday" : "1995-10-12","interests": "喜歡編程,聽音樂,旅游" }PUT /lib4/user/5 {"name" : "張三","address" :"北京海淀區清河","age" : 29,"birthday" : "1988-10-12","interests": "喜歡攝影,聽音樂,跳舞" }term和terms查詢?
term是代表完全匹配,即不進行分詞器分析,文檔中必須包含整個搜索的詞匯
#term和terms查詢 #查詢字段中含有趙的 GET /lib4/user/_search {"query": {"term": {"name":"趙"}} }#指定多個關鍵字,只要包含其中一個就會被查詢出來 GET /lib4/user/_search {"query":{"terms":{"interests": ["喝酒","唱歌"]}} }#控制返回的數據條數 取前2條 GET /lib4/user/_search {"from":0,"size": 2, "query":{"terms":{"interests": ["喝酒","唱歌"]}} }#版本號的返回 GET /lib4/user/_search {"version":true,"query":{"terms":{"interests": [" 喝酒", "唱歌"]}} }match查詢? match是知道分詞器存在的這個之前就講過
趙六會被分詞為兩個詞? 含有趙和六的都會被查詢出來
#match查詢 GET /lib4/user/_search {"query":{"match":{"name": "趙六"}} }然后對于數字型的是不會被分詞的比如查詢年齡20的? 這個不會被分成2和0? 所以查詢結果會去從文檔匹配年齡為20的信息
GET /lib4/user/_search {"query":{"match":{"age": 20}} }GET /lib4/user/_search {"query": {"match_all": {}} }?
#multi_match指定多個字段關鍵字匹配? ;match_phrase短語精確匹配 ;_source指定查詢結果返回的字段信息
#指定多個字段匹配 GET /lib4/user/_search {"query":{"multi_match": {"query": "唱歌","fields": ["interests", "name"]}} }#短語匹配 GET lib4/user/_search {"query":{"match_phrase" :{"interests": "鍛煉,說相聲"}} }#返回指定的字段 GET /lib4/user/_search {"_source": ["address" , "name"],"query": {"match": {"interests": "唱歌"}} }?
?
?
?
總結
以上是生活随笔為你收集整理的基本查询(Query查询中文)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 学会看日志文件处理问题
- 下一篇: 【译】A quick list of n