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