gpt4 book ai didi

django - 从 elasticsearch 返回的嵌套对象中检索特定字段

转载 作者:行者123 更新时间:2023-12-02 22:42:37 24 4
gpt4 key购买 nike

我是 Elasticsearch 的新手。我正在尝试从 elasticsearch 返回的嵌套对象中检索选定的字段。下面是存储在 elasticsearch 索引中的对象:

{
"_index": "xxx",
"_type": "user",
"_id": "2",
"_version": 1,
"exists": true,
"_source": {
"user": {
"user_auth": {
"username": "nickcoolster@gmail.com",
"first_name": "",
"last_name": "",
"is_active": false,
"_state": {
"adding": false,
"db": "default"
},
"id": 2,
"is_superuser": false,
"is_staff": false,
"last_login": "2012-07-10 21:11:53",
"password": "sha1$a6caa$cba2f821678ccddc4d70c8bf0c8e0655ab5c279b",
"email": "nickcoolster@gmail.com",
"date_joined": "2012-07-10 21:11:53"
},
"user_account": {},
"user_profile": {
"username": null,
"user_id": 2,
"following_count": 0,
"sqwag_count": 0,
"pwd_reset_key": null,
"_state": {
"adding": false,
"db": "default"
},
"personal_message": null,
"followed_by_count": 0,
"displayname": "nikhil11",
"fullname": "nikhil11",
"sqwag_image_url": null,
"id": 27,
"sqwag_cover_image_url": null
}
}
}
}

现在我只想从 user.user_auth 返回某些字段(不应该返回密码、 super 用户等)。
我正在使用 django PyES,下面是我尝试过的代码:
fields = ["user.user_auth.username","user.user_auth.first_name","user.user_auth.last_name","user.user_auth.email"]
result = con.search(query=q,indices="xxx",doc_types="user",fields=fields)

但我得到的结果是只检索电子邮件(即只返回最后一个字段):
{
"user.user_auth.email": "nikhiltyagi.eng@gmail.com"
}

我想要嵌套对象的这种抽象(即:user_auth,user_profile)

我该怎么做呢?

最佳答案

使用最新的 django-haystack 怎么样? ?它还涵盖了作为后端的 ElasticSearch,因此您可以将 ElasticSearch FTS 很好地绑定(bind)到您的项目中。

关于django - 从 elasticsearch 返回的嵌套对象中检索特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com