天天看點

ElasticSearch(十二)-結構化搜尋

結構化不關心文檔的相關性或分數,隻是簡單的包含或排除。      
1.查找準确值      
  (1)過濾器查找比對文檔      
(2)建立位元組集[1,0,0,0]       
(3)位元組集存在記憶體中,我們能跳過1和2,能提升性能。      
2.組合過濾      
Must、must_not、should      
3.查詢多個準确值      
  Terms格式如:        
{
     "terms" : {
         "price" : [20, 30]
      }
}
           
4.包含,而不是相等      
  了解term是包含而不是相等。      
5.範圍      
  Range範圍      
  • gt: > 大于
  • lt: < 小于
  • gte: >= 大于或等于
  • lte: <= 小于或等于

範圍執行個體  

GET /my_store/products/_search
        {
            "query" : {
                "filtered" : {
                    "filter" : {
                        "range" : {
                            "price" : {
                                "gte" : 20,
                                "lt"  : 40
                            }
                        }
                    }
                }
            }
        }
           
最近一個小時的執行個體:      
"range": {
    "timestamp" : {
        "gt" : "now-1h"
    }
}
"range": {
    "timestamp" : {
        "gt" : "2014-01-0100:00:00",
        "lt" : "2014-01-0100:00:00||+1M" <1>
    }
}
           
6.處理null值      
  Exists過濾器和missing過濾器      
區分一個是否有值,映射資料時,可以設定一個null_value來處理明确的null值。      
7.緩存??      
  每個過濾器都是被獨立計算和緩存的。      
8.過濾順序      
  過濾器的順序對性能有很大影響。      
本文出處:http://blog.csdn.net/shan1369678/article/details/51455540      

繼續閱讀