示例
get
/test/_doc/_search?q=label:森林2
會使用分詞器解析,所以是部分匹配
get
/test/_doc/_search
}}
在示例1的結果中會預設查詢出文件類的所有字段,
可以通過新增_source
來過濾結果集. 下面的示例中指定了結果僅顯示label
字段
get
/test/_doc/_search},
"_source":[
"label"
]}
按結果排序會導致_score
欄位為空。
這裡由於一開始插值時沒指定age欄位型別,預設為text,且後期無法修改。text型別的字段無法作為排序條件fielddata is disabled on text fields by default
.
get
/test/_doc/_search},
"sort":[
}]}
查詢中指定from
,size
預設從0
開始
get
/test/_doc/_search},
"from":0
,"size":1
}
僅返回匹配分數》0.3的
get
/test/_doc/_search},
"min_score"
:0.3
}
多條件精確查詢
must
同時滿足
get
/test/_doc/_search},
}]}}
}
should
相當於or
get
/test/_doc/_search},
}]}}
}
must_not
相當於not
get
/test/_doc/_search}]
}}}
乙個混合示例, 查詢label中有林
但age
不等於1
的
get
/test/_doc/_search}]
,"must_not":[
}]}}
}
另乙個復合查詢示例,查詢包含林
,且時間範圍在2017-01-01 ~ 2019-12-31
的資料
get test/_doc/_search},
}}]}
}}
get test/_doc/_search}}
}
get
/test/_doc/_search}]
,"filter":}
}}}}
查詢有字段的文件,或者說欄位不為空的文件
get test/_doc/_search
}}
直接用空格隔開即可,注意這裡是or
關係
get
/test/_doc/_search
}}
與match的區別,
對於輸入的查詢query,match會相對query進行分詞,然後與匹配欄位的分詞結果進行匹配,也就是查詢林田,會被分詞為林,和田,然後看匹配欄位的分詞結果是否包含林或田。
但term中,輸入林田,不會對林田進行分詞,直接與匹配欄位的分詞結果進行匹配,注意,這裡是和匹配欄位的分詞結果進行匹配,通過ik分詞測試發現,林田的分詞結果是林和田,而不包含林田,因此查不到結果。
測試林田的ik分詞結果
get _analyze
term查詢
get
/test/_doc/_search
}}
新增highlight
字段,會自動標註匹配成功的內容。
預設高亮內容被標籤包裹。
可以新增pre_tags
,post_tags
自定義高亮css。
get
/test/_doc/_search},
"highlight":}
}}
第二種方式 就是標籤的位置換了下,
也可以指定多欄位高亮(注意新增了"require_field_match":false
),如下面對也進行了高亮.
get
/test/_doc/_search},
"highlight":,
"tags":}
}}
顯然直接在highlight
裡面指定的pre_tags
和post_tags
是高亮預設的,對多字段高亮的情況下,可以單獨在指定特定的高亮方式. ES中的檢索方式
1.es官方提供了兩種檢索方式 檢索語法 get ems emp searcha.使用url引數方式進行檢索 query string as a parameter get ems emp search?q 執行結果 hits 2.查詢結果返回指定條數,預設返回值10條 get ems emp se...
select例項,拼音檢索
個性標籤 checkbox 個性標籤 radio 順網科技 研發二部 網咖事業部 四部屌絲 單身dog 蘋果粉苦逼程式設計師 pinyin.js function function chntopy l1 return i1 匹配上述拼音庫中的是否有對應 function arraysearch l1...
es父子結構查詢 ES 系列3 ES 檢索原理
索引原理 磁碟io與預讀 倒排索引 fst索引是加速資料查詢的重要手段,其核心原理是通過不斷的縮小想要獲取資料的範圍來篩選出最終想要的結果,同時把隨機的事件變成順序的事件。也就是說,有了這種索引機制,我們可以總是用同一種查詢方式來鎖定資料。磁碟io程式設計中非常高昂的操作,也是影響程式效能的重要因素...