我试图使用query_string编写一个查询来检索嵌套对象的数据查询.
我想要做的一个查询示例是:
{
"query": {
"query_string": {
"query": "a.id:2"
}
}
}
Run Code Online (Sandbox Code Playgroud)
其中"a"是嵌套对象,"id"是"a"字段.
我知道我可以使用嵌套查询成功执行此任务,编写如下查询:
{
"nested": {
"path": "a"
"query_string": {
"query": "a.id:2"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想避免它.我不想自己弄清楚用户正在搜索嵌套字段并修改查询.我尝试使用"fields"参数,但看起来它不适用于嵌套对象.
是否可以使用"query_string"查询直接编写此查询?可以获得什么语义?(例如,如果我写"a.id:2 AND ab:10"我匹配同一个对象或不同对象中的两个字段?)
我正在做更多的研究,发现这可以通过在映射中将include_in_parent设置为true来实现.
现在你应该能够做一个像这样的查询
{
"query": {
"query_string": {
"query": "fields.fieldvalue:sometext"
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如:-
"mappings": {
"documentmetadatavalue": {
"properties": {
"id": {
"type": "string"
},
"fields": {
"type": "nested",
"include_in_parent": true,
"properties": {
"fieldId": {"type": "string"},
"fieldvalue": {"type": "string"}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有帮助,请告诉我.
| 归档时间: |
|
| 查看次数: |
4938 次 |
| 最近记录: |