Elasticsearch query_string嵌套查询

我正在尝试使用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

ab: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嵌套查询 的全部内容, 来源链接: utcz.com/qa/414788.html

回到顶部