我正在使用ES版本5.6。 我在ES中存储了以下文件。
{
"swType": "abc",
"swVersion": "xyz",
"interfaces": [
{
"autoneg": "enabled",
"loopback": "disabled",
"duplex": "enabled"
},
{
"autoneg": "enabled",
"loopback": "disabled",
"duplex": "enabled"
}
]
}
我要搜索所有具有“启用”功能的字段。
我尝试了以下查询,但没有用。
curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match":{
"_all": "enabled"
}
}
}'
curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"query_string": {
"query": "enabled",
"fields": ["*"]
}
}
}'
但是下面的查询有效
curl -XGET "http://esserver:9200/comcast/inventory/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match":{
"_all": "abc"
}
}
}'
因此,外观_all
仅与顶级字段匹配,而不与嵌套字段匹配。
有没有办法查询包含嵌套字段在内的所有字段中的文本。我不想明确指定嵌套的字段名称。
我正在寻找一种全球搜索,我想在其中搜索“文本”
文档中的任何地方。
谢谢。
答案 0 :(得分:0)
好。得到它的工作。
我已经设置了映射dynamic:false
。看起来ES只会在字段中搜索
在映射中指定,并且我的搜索字在动态添加的字段中。
使用dynamic:'strict'
帮助我缩小了范围。