我做错了什么?我从嵌套属性中得不到任何结果:
GET my_app_name/my_model/_search
{"query": {"match_all": {} } }
# results
"hits": [
{
"_index": "my_app_name",
"_type": "my_model",
"_score": 1,
"_source": {
"categories": [
{
"name": "SomeCategoryName"
}
]
}
}
]
我的映射:
{
"my_app_name": {
"mappings": {
"my_model": {
"properties": {
"categories": {
"type": "nested",
"properties": {
"name": {
"type": "text"
}
}
}
}
}
}
}
}
我的查询
# GET my_app_name/my_model/_search
{
"query": {
"bool": {
"must": [
{"match": {
"categories.name": "SomeCategoryName"
}}
]
}
}
}
也试过这个
# GET my_app_name/my_model/_search
{
"query": {"match": {
"categories.name": "SomeCategoryName"
}}
}
答案 0 :(得分:0)
嵌套对象被视为单独的文档,因此查询中需要nested
。
GET my_app_name/my_model/_search
{
"query": {
"nested": {
"path": "categories",
"query": {
"bool": {
"must": [
{
"match": {
"categories.name": "SomeCategoryName"
}
}
]
}
}
}
}
}