gpt4 book ai didi

elasticsearch - elasticsearch dsl python:如何在数组中按值搜索

转载 作者:行者123 更新时间:2023-12-03 01:29:44 25 4
gpt4 key购买 nike

我的索引具有以下结构:

[
{
name:"project1",
users: [
{"id":"1"},
{"id":"2"}
]
},
#... more projects
]

我想知道如何获取特定用户的所有项目(通过他的ID),这是我尝试过的:
q = Q("term", id="1") 
resp = projects_index.query("nested",path="users",query=q).execute()

但是我没有结果,我想念什么?
谢谢
编辑:
这是我的索引映射:
   {
"projects": {
"mappings": {
"doc": {
"properties": {
"created_at": {
"type": "date"
},
"name": {
"type": "text"
},
"users": {
"type": "nested",
"properties": {
"id": {
"type": "text"
}
}
}
}
}
}
}
}

最佳答案

无法获得结果的原因是,在指定嵌套路径时,您应提供包括父字段名称在内的全名,即应使用users.id而不是id。因此查询将转换为以下内容:

{
"query": {
"bool": {
"filter": [
{
"nested": {
"path": "users",
"query": {
"term": {
"users.id": "1"
}
}
}
}
]
}
}
}

建议:id字段的类型更改为 keyword,以防止id值将权杖主义化为多个术语。

关于elasticsearch - elasticsearch dsl python:如何在数组中按值搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590033/

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