日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

query builder python-elasticsearch返回指定字段

發(fā)布時間:2025/3/11 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 query builder python-elasticsearch返回指定字段 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. postman 請求elasticsearch 返回指定字段

1.直接在請求體當(dāng)中,json 數(shù)據(jù),對應(yīng)的是一個列表

{

"_source":["title","id","desc"],

"from":10,

"size":100,

}

至于from和size是淺分頁

2. 或者這樣

{"_source":{"includes":["title","url","id"],"excludes":["desc"]

}

}

其中includes代表需要返回的字段,excludes代表不要返回的字段

3.直接在請求url帶上需要查詢參數(shù)

curl -XGET "localhost:9200/_search?pretty&filter_path=took,hits.hits._id,hits.hits._score"

{"took" : 3,"hits": {"hits": [

{"_id" : "3640","_score" : 1.0},

{"_id" : "3642","_score" : 1.0}

]

}

}

對_source的字段進行過濾

curl -XGET "localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title"

{"hits": {"hits": [ {"_source":{"title":"Book #2"}

}, {"_source":{"title":"Book #1"}

}, {"_source":{"title":"Book #3"}

} ]

}

}

這樣也可以

_search?_source=goodsId,uri

_search?fields=goodsId,uri

2.python 對接elassearch ,指定返回字段

1.實例化的es客戶端,然后調(diào)用search方法,傳入?yún)?shù),params

from elasticsearch import Elasticsearch

es=Elasticseach(xxxx) es.search(params={"_source":"title,id,desc,url"})

注:這邊調(diào)用的是包中的search方法,和postman不一樣的是,_source的值是一個z字符串,不同字段用逗號隔開,而post滿是一個列表

2.也是調(diào)用Elasticsearch的search方法,傳入?yún)?shù)不是param,而直接是_source字段

pprint(es.search(index="person", body={"query": {"match": {"age": "19"}}}, _source=["name"]))

結(jié)果:

{"_shards": {"failed": 0, "skipped": 0, "successful": 1, "total": 1},"hits": {"hits": [{"_id": "xFznIXIBMTX0DMkCyicV","_index": "person","_score": 1.0,"_source": {"name": "lisi"},"_type": "male"}],"max_score": 1.0,"total": {"relation": "eq", "value": 1}},"timed_out": False,"took": 1}

3.不懂直接查詢api接口

4.返回文檔版本字段

GET /_search

{"version": true,"query": {"term" : { "user" : "kimchy"}

}

}

5.Script Field 用腳本來對命中的每個文檔的字段進行運算后返回

GET /bank/_search

{"query": {"match_all": {}

},"script_fields": {"test1": {"script": {"lang": "painless","source": "doc["balance"].value * 2"}

},"test2": {"script": {"lang": "painless",

"source": "doc["age"].value * params.factor","params": {"factor": 2}

}

} }}

搜索結(jié)果:

{"took": 3,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0

},"hits": {"total": 1000,"max_score": 1,"hits": [

{"_index": "bank","_type": "_doc","_id": "25","_score": 1,"fields": {"test1": [

],"test2": [

]

}

},

{"_index": "bank","_type": "_doc","_id": "44","_score": 1,"fields": {"test1": [

],"test2": [

]

}

}}

]

}

}

示例2

GET/bank/_search

{"query": {"match_all": {}

},"script_fields": {"ffx": {"script": {"lang": "painless","source": "doc["age"].value * doc["balance"].value"}

},"balance*2": {"script": {"lang": "painless","source": "params["_source"].balance*2"}

}

}

}

搜索結(jié)果:

{"took": 26,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0

},"hits": {"total": 1000,"max_score": 1,"hits": [

{"_index": "bank","_type": "_doc","_id": "25","_score": 1,"fields": {"balance*2": [

],"ffx": [

]

}

},

{"_index": "bank","_type": "_doc","_id": "44","_score": 1,"fields": {"balance*2": [

],"ffx": [

]

}

},}

]

}

}

說明: params _source 取 _source字段值

官方推薦使用doc,理由是用doc效率比取_source 高

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的query builder python-elasticsearch返回指定字段的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。