發表文章

目前顯示的是 10月, 2016的文章

[ Elasticsearch ] Query DSL 緩慢更新中..

圖片
Query and filter context Elasticsearch 提供一個以JSON定義查詢式Query DSL 你可以將Query DSL想成是一個AST (abstract syntax tree) queries Query DSL 由兩種型態的查詢子句所組成 Leaf 查詢子句 用來查詢某個欄位的某個特定值 例如:   match , term  或  range Compound 查詢子句 包著其他的 leaf 查詢子句 或是 複合查詢 bool  或  dis_max  或  not  或  constant_score Query的行為視此Query使用的是query context或著是filter context Query context 傾向於更準確的搜尋 此query子句會產生 _score 來顯示match Filter context 比較像是全文搜索 比較像是回答 "這個文件是否符合此query子句" 常被用來過濾結構化的資料 例如: 這個文件的狀態是否被設定成已發布 常用filter搜尋的資料會自動被cache起來用以加速 Reference: 對岸好文 下列的例子在search api中使用了query與filter context 此query將會符合以下的條件 title 欄位 包含 search這個字串 content 欄位 包含 elasticsearch這個字串 status欄位 等於 published這個值 publish_date欄位 包含 日期大於等於 1 Jan 2015 GET _search {       "query" : {       "bool" : {          "must" : [               { "match" : { "title" : "Search" }},                { "match" : { "content" : "E