我的索引文档看起来像这样:
{
"sku": "1234567890",
"name": "my_name",
"lng:en_AE:name": "my_name_in_AE",
"lng:en_AE:price": 10.99,
"lng:en_BH:name": "my_name_in_BH",
"lng:en_BH:price": 9.99,
"lng:en_QA:name": "my_name_in_QA",
"lng:en_QA:price": 8.99,
}
有两种“类型”的字段:
1.通用/全局-类似"sku"
、"name"
。
1.基于语言的字段,以perfix开头:lng:xx_YY:*
-类似于"lng:en_AE:name"
。
用户可以添加自己的字段,无论是通用/全局字段还是特定语言字段。
当我们搜索文档时,我们希望获得所有通用/全局字段和一个特定语言字段:
{
"_source": {
"includes": [
"lng:en_AE:*",
"*"
],
"excludes": [
"lng:*"
]
}
}
查询about不起作用,但我的意图是get排除所有不同于en_AE
的语言。我事先不知道所有lng
的可能性,我不能改变模式,有没有办法做到这一点?查询about不起作用,但我的意图是get排除所有不同于en_AE
的语言。我事先不知道所有lng
的可能性,我不能改变模式,有没有办法做到这一点?我希望得到这样的回应:
{
"sku": "1234567890",
"name": "my_name",
"lng:en_AE:name": "my_name_in_AE",
"lng:en_AE:price": 10.99,
}
1条答案
按热度按时间rdrgkggo1#
如果你需要全局字段,你必须定义它们,因为当你使用include“*”时,你再次添加了源代码中的所有字段,而exclude则删除了所有基于语言的字段。无法应用您想要的规则。