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