gpt4 book ai didi

Elasticsearch query_string嵌套查询

转载 作者:行者123 更新时间:2023-11-29 02:48:06 24 4
gpt4 key购买 nike

我正在尝试使用 query_string 编写一个查询来检索嵌套对象查询的数据。

我想做的一个查询示例是:

{
"query": {
"query_string": {
"query": "a.id:2"
}
}
}

其中“a”是一个嵌套对象,“id”是“a”的一个字段。

我知道我可以使用嵌套查询成功执行此任务,编写如下查询:

{
"nested": {
"path": "a"
"query_string": {
"query": "a.id:2"
}
}
}

但是,我想避免它。我不想自己弄清楚用户正在搜索嵌套字段并修改查询。我尝试使用“fields”参数,但它似乎不适用于嵌套对象。

是否可以直接使用“query_string”查询来编写此查询?可以获得什么语义? (例如,如果我写“a.id:2 AND a.b:10”,我匹配的是同一对象或不同对象中的两个字段?)

最佳答案

我做了更多研究,发现这可以通过在映射中将 include_in_parent 设置设置为 true 来实现。

现在你应该可以像这样查询了

{
"query": {
"query_string": {
"query": "fields.fieldvalue:sometext"
}
}
}

例如:-

"mappings": {
"documentmetadatavalue": {
"properties": {
"id": {
"type": "string"
},
"fields": {
"type": "nested",
"include_in_parent": true,
"properties": {
"fieldId": {"type": "string"},
"fieldvalue": {"type": "string"}
}
}
}
}
}

如果有帮助,请告诉我。

关于Elasticsearch query_string嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28415456/

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