国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

es查詢響應(yīng)結(jié)果中獲取某些字段的值

這篇具有很好參考價(jià)值的文章主要介紹了es查詢響應(yīng)結(jié)果中獲取某些字段的值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????有時(shí)候使用es查詢出的結(jié)果包含多個(gè)字段,如果數(shù)據(jù)中僅僅包含幾個(gè)字段時(shí),我們是很容易挑出自己需要的字段值,但是如果數(shù)據(jù)中包含幾十或者幾百甚至更多時(shí),尤其是數(shù)據(jù)中嵌套好多層時(shí),不容易直接挑取出需要的值,這時(shí)候可以借助程序直接查找出來?;蛘哚槍?duì)性的直接查詢時(shí)就限定條件查詢某些字段的值。

直接從es中查詢出的示例數(shù)據(jù):

{
	"took": 918,
	"timed_out": false,
	"_shards": {
		"total": 1,
		"successful": 1,
		"skipped": 0,
		"failed": 0
	},
	"hits": {
		"total": {
			"value": 4,
			"relation": "eq"
		},
		"max_score": 1.0,
		"hits": [{
				"_index": "test",
				"_type": "user",
				"_id": "QHi1UoIBpyNh4YQ4T1Sq",
				"_score": 1.0,
				"_source": {
					"id": 1001,
					"name": "張三",
					"age": 20,
					"sex": "男",
					"grade": {
						"Chinese": 99,
						"Math": 98,
						"English": 96
					}
				}
			},
			{
				"_index": "test",
				"_type": "user",
				"_id": "1002",
				"_score": 1.0,
				"_source": {
					"id": 1002,
					"name": "李四",
					"age": 23,
					"sex": "女",
					"grade": {
						"Chinese": 98,
						"Math": 99,
						"English": 97
					}
				}
			},
			{
				"_index": "test",
				"_type": "user",
				"_id": "1003",
				"_score": 1.0,
				"_source": {
					"id": 1003,
					"name": "王五",
					"age": 27,
					"sex": "男",
					"grade": {
						"Chinese": 93,
						"Math": 90,
						"English": 99
					}
				}
			},
			{
				"_index": "test",
				"_type": "user",
				"_id": "1004",
				"_score": 1.0,
				"_source": {
					"id": 1004,
					"name": "趙六",
					"age": 29,
					"sex": "女",
					"grade": {
						"Chinese": 100,
						"Math": 95,
						"English": 94
					}
				}
			}
		]
	}
}

使用python打印出需要的字段值:

import json
import jmespath


with open('text.txt', 'r', encoding='utf-8') as f:
    data = f.read()

json_data = json.loads(data)
# print(json_data)
sources = json_data.get('hits').get('hits')
# print(sources)
for source in sources:
    # print(source)
    data = source.get('_source')
    print(data)
    valid_fields = '{name: name, Chinese_grade: grade.Chinese}'
    ret = jmespath.search(valid_fields, data)
    print(ret)

運(yùn)行結(jié)果:

es查詢字段包含某個(gè)值,ElasticSearch,elasticsearch

注意:使用json.load()時(shí),會(huì)把文本中的fase、true直接變?yōu)镕alse、True

參考博文:

python中jmespath庫(kù)用法詳解_IT之一小佬的博客-CSDN博客_jmespath python文章來源地址http://www.zghlxwxcb.cn/news/detail-521005.html

到了這里,關(guān)于es查詢響應(yīng)結(jié)果中獲取某些字段的值的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • es使用和常用查詢(包含多字段聚合查詢,實(shí)體類方式保存es)

    1.導(dǎo)入es相關(guān)jar包 2.增加es配置 3.讀取es相關(guān)配置? ?4.創(chuàng)建es實(shí)體類,與es mapping設(shè)計(jì)一致 ?5.創(chuàng)建es結(jié)構(gòu) ?6.創(chuàng)建類繼承 ElasticsearchRepository 實(shí)現(xiàn)通過api保存實(shí)體類ESData到es ?7.保存實(shí)體類ESData到es ?8.es查詢 多字段匹配查詢,分組查詢,分組后聚合

    2024年02月03日
    瀏覽(18)
  • es查詢nested字段類型數(shù)組長(zhǎng)度來判斷是否包含多個(gè)值

    使用es時(shí)經(jīng)常會(huì)碰到查詢數(shù)組格式的字段是否有多個(gè)值的情況,總結(jié)一下。 一、字段類型為keywork時(shí) 當(dāng)字段類型為keyword時(shí)(創(chuàng)建索引后,添加的第一條數(shù)據(jù)id字段格式為數(shù)組格式,便會(huì)導(dǎo)致后續(xù)的數(shù)據(jù)都是數(shù)組),查詢id字段有多值時(shí)用以下查詢語(yǔ)句: 二、字段類型為nested類型時(shí)

    2024年02月11日
    瀏覽(102)
  • Python數(shù)據(jù)分析實(shí)戰(zhàn)-dataframe篩選某字段包含(模糊匹配)某些值的記錄(附源碼和實(shí)現(xiàn)效果)

    Python數(shù)據(jù)分析實(shí)戰(zhàn)-dataframe篩選某字段包含(模糊匹配)某些值的記錄(附源碼和實(shí)現(xiàn)效果)

    實(shí)現(xiàn)功能 Python利用df[\\\'\\\'].str.contains()對(duì)dataframe篩選某字段包含(模糊匹配)某些值的記錄 實(shí)現(xiàn)代碼 實(shí)現(xiàn)效果 ?本人讀研期間發(fā)表5篇SCI數(shù)據(jù)挖掘相關(guān)論文,現(xiàn)在某研究院從事數(shù)據(jù)挖掘相關(guān)科研工作,對(duì)數(shù)據(jù)挖掘有一定認(rèn)知和理解,會(huì)結(jié)合自身科研實(shí)踐經(jīng)歷不定期分享關(guān)于pytho

    2024年02月15日
    瀏覽(21)
  • SpringBoot - MyBatis-Plus - 如何在查詢時(shí)排除某些字段?

    寫在前面 查詢時(shí)部分字段不想給前端顯示,怎么辦? (1)使用SELECT方法,排除字段\\\"password\\\" (2)使用SELECT方法,只顯示某些字段 (3)使用@TableField(exist = false),排除某些字段 注:表示當(dāng)前屬性不是數(shù)據(jù)庫(kù)的字段,但在項(xiàng)目中必須使用,這樣的話在新增/查詢等使用BEAN時(shí),

    2024年02月12日
    瀏覽(16)
  • ES替換某個(gè)索引下的字段的值

    在ES的操作中,如果我們已經(jīng)同步完所有的索引,但是發(fā)現(xiàn)同步的時(shí)候數(shù)據(jù)出現(xiàn)了失誤,那么在數(shù)據(jù)量很大的情況下還是要避免重新同步,這個(gè)時(shí)候就用到了更新替換操作: 針對(duì)于name字段進(jìn)行替換,將name字段中包含/的替換成/ 針對(duì)nested結(jié)構(gòu)的字段則有點(diǎn)不同了,下面的操作

    2024年02月06日
    瀏覽(21)
  • 利用反射獲取websocket,session字段的值

    首先利用反射獲取方法字段,然后取得字段的值 獲取的字段值 webSocketContainer :WebSocket容器,用于管理WebSocket連接。 requestUri :請(qǐng)求的URI,即WebSocket的URL。 requestParameterMap :請(qǐng)求的參數(shù)映射,包含從URL中提取的參數(shù)。 queryString :查詢字符串,即URL中的參數(shù)部分。 userPrincipal

    2024年01月17日
    瀏覽(18)
  • ES查詢多個(gè)索引,但是某些索引的name不同

    參考:?https://blog.csdn.net/qq_37147750/article/details/111319151 背景: 目前有四個(gè)索引index, 對(duì)于這四個(gè)index他們的字段并不完全相同,要支持篩選。 目前的問題是,其中有兩個(gè)索引要先根據(jù)條件篩選一遍。后續(xù)的篩選根據(jù)這次的結(jié)果做基礎(chǔ)。 但是這兩個(gè)索引的篩選條件也不一樣。 相

    2024年02月13日
    瀏覽(93)
  • RxJava 響應(yīng)式獲取List 指定名稱對(duì)象的值

    可以通過 Java 8 的 Stream API 來實(shí)現(xiàn)。假設(shè)你有一個(gè)名為 list 的 List 對(duì)象,其中包含多個(gè)對(duì)象,每個(gè)對(duì)象都有一個(gè)名為 name 的屬性和一個(gè)名為 value 的屬性,你可以使用以下代碼來獲取名為 targetName 的對(duì)象的 value 值:

    2024年02月08日
    瀏覽(23)
  • mysql 自定義函數(shù),返回值為sql查詢后的某個(gè)字段的值

    函數(shù)框架:如果使用的是 Navicat 等可視化工具,通過點(diǎn)擊界面填寫相應(yīng)的條件就可以得到函數(shù)框架 1、definer 翻譯成中文是“定義者”的意思。MySQL中,創(chuàng)建視圖(view)、函數(shù)(function)、存儲(chǔ)過程(procedure)、觸發(fā)器(trigger)、事件(event)時(shí),都可以指定 DEFINER = user 選項(xiàng),即指定此對(duì)象

    2024年01月18日
    瀏覽(20)
  • postman獲取請(qǐng)求響應(yīng)結(jié)果并設(shè)置到全局變量中

    postman獲取請(qǐng)求響應(yīng)結(jié)果并設(shè)置到全局變量中

    做接口測(cè)試中,經(jīng)常遇到就是我們首先要去獲取一個(gè)請(qǐng)求響應(yīng)返回的參數(shù)(這個(gè)返回值是我們需要的),這個(gè)接口我們跑通了返回值也有了,那么如何去將它提取出來并寫入到全局變量里去呢? 可通過返回值的層級(jí)一步一步的獲取到想要的返回值并保存到變量里面,如下:

    2024年02月15日
    瀏覽(47)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包