elasticsearch Java High Level REST Client 7.15 实现复杂搜索

码上中国博客 发布于 2021/11/14 13:07
阅读 472
收藏 0

我在使用elasticsearch Java High Level REST Client 7.15 实现一个搜索的时候遇到了问题

有一个业务场景如下:

在es的一个index中的对象结构如下(示例共三个对象):

[{
	"name": "第一个对象",
	"age": "....",
	"citys": [{
		"cityCode": "1234",
		"order": 1
	},
	{
		"cityCode": "233323",
		"order": 2
	},
	{
		"cityCode": "32223",
		"order": 3
	}.....]
},
{
	"name": "第二个对象",
	"age": "....",
	"citys": [{
		"cityCode": "32223",
		"order": 1
	},
	{
		"cityCode": "233323",
		"order": 2
	},
	{
		"cityCode": "78787",
		"order": 3
	},
	{
		"cityCode": "1234",
		"order": 4
	}.....]
},
{
	"name": "第三个对象",
	"age": "....",
	"citys": [{
		"cityCode": "32223",
		"order": 1
	},
	{
		"cityCode": "233323",
		"order": 2
	},
	{
		"cityCode": "1234",
		"order": 3
	},
	{
		"cityCode": "78787",
		"order": 4
	}.....]
}]

查询条件为俩cityCode,,分别为 32223, 1234,我想达到如下搜索效果

1、cityCode包含32223 , 1234的对象才能被查出来

2、查询的结果中每个对象的cityCode为32223的order必须小于cityCode为1234的order

传入32223, 1234,正确的情况下应该返回第二个对象和第三个对象列表

我不知道该如何构建查询条件才能达到上面的要求,请各位前辈指点迷津。

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部