Python Elasticsearch查询嵌套对象不返回结果
我已经创建了Elasticsearch索引,其中一个嵌套字段具有如下映射Python Elasticsearch查询嵌套对象不返回结果,python,elasticsearch,Python,elasticsearch,我已经创建了Elasticsearch索引,其中一个嵌套字段具有如下映射 "groups": { "type": "nested", "properties": { "name": { "type": "text" }, "value": { "type": "text" } } } 关于ES版本及其5.0的详细信息,我正在客户端使用官方python客户端
"groups": {
"type": "nested",
"properties": {
"name": {
"type": "text"
},
"value": {
"type": "text"
}
}
}
关于ES版本及其5.0的详细信息,我正在客户端使用官方python客户端。我想根据它的值查询这个嵌套字段
假设还有另一个名为name的字段,它是文本类型字段。我想查找所有以A开头并属于指定组的名称
一些样本数据
组-人力资源(名称=人力资源,价值=人力资源),营销(名称=营销,价值=营销)
名字-安德鲁,阿尔法,巴里,约翰
安德鲁和阿尔法属于人力资源部
基于此,我尝试了一个查询
{
'query': {
'bool': {
'must': [{
'match_phrase_prefix': {
'title': 'A'
}
}]
},
'nested': {
'path': 'groups',
'query': {
'bool': {
'must': [{
'match': {
'groups.value': 'hr'
}
}]
}
}
}
}
}
对于这个查询,我引用了ES文档,但这个查询没有返回任何内容。如果有人能指出此查询或映射本身的错误,那就太好了。您就快到了,只需将
嵌套的查询移动到bool/must
查询中:
{
'query': {
'bool': {
'must': [
{
'match_phrase_prefix': {
'title': 'A'
}
},
{
'nested': {
'path': 'groups',
'query': {
'bool': {
'must': [{
'match': {
'groups.value': 'hr'
}
}]
}
}
}
}
]
}
}
}
就快到了,只需在bool/must
查询中移动nested
查询:
{
'query': {
'bool': {
'must': [
{
'match_phrase_prefix': {
'title': 'A'
}
},
{
'nested': {
'path': 'groups',
'query': {
'bool': {
'must': [{
'match': {
'groups.value': 'hr'
}
}]
}
}
}
}
]
}
}
}
我是否需要更新映射以获得所需的结果?它起作用了。谢谢你,伙计!!答案是可以接受的,但现在阻止我也可以!如果允许的话,我也会这样做。不,你的映射很好,只是查询的格式不正确。我需要更新我的映射以获得所需的结果吗?它起作用了。谢谢你,伙计!!答案是可以接受的,但现在阻止我也可以!如果允许,我们也会这样做。不,您的映射很好,只是查询的格式不正确