目錄
前言
在未來,一篇文檔可能有很多(是的,很多!不要被我們的示例這仨倆字段所迷惑)的字段,每次查詢都默認給我們返回全部,在數據量很大的時候,是的,比如我只想查姑娘的手機號,你一並給我個喜好啊、三圍什么的算什么?是要告訴灑家,hi,小老弟,要撩妹么?
所以,我們對結果做一些過濾,清清白白的告訴elasticsearch,小老弟,我只是查!水!表!
准備數據
PUT zhifou/doc/1
{
"name":"顧老二",
"age":30,
"from": "gu",
"desc": "皮膚黑、武器長、性格直",
"tags": ["黑", "長", "直"]
}
結果過濾:_source
現在,在所有的結果中,我只需要查看name
和age
兩個屬性,其他的不要怎么辦?
GET zhifou/doc/_search
{
"query": {
"match": {
"name": "顧老二"
}
},
"_source": ["name", "age"]
}
如上例所示,在查詢中,通過_source
來控制僅返回name
和age
屬性。
{
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.8630463,
"hits" : [
{
"_index" : "zhifou",
"_type" : "doc",
"_id" : "1",
"_score" : 0.8630463,
"_source" : {
"name" : "顧老二",
"age" : 30
}
}
]
}
}
在數據量很大的時候,我們需要什么字段,就返回什么字段就好了,提高查詢效率。整個三圍啥的可low了,有本事上圖!
歡迎斧正,that's all