有这样一个场景:公司招开发, 有不同的要求。 语言、年龄、工作年限、籍贯对应es里一条记录
比如 (1.横线代表空,就是对这个条件没有要求 2. count代表这个职位有几个条件, 比如A职位要求年龄 语言 籍贯, 所以count是3)
job_title age work_year language address count
A职位 20 - java 上海 3
B职位 - 2 java 2
C职位 - 3 php 2
现在有个人的条件是:java 20岁 上海
用should查询 minimum_should_match=1, 这样A B职位肯定都会被查出来。 但是需求是必须查询传入的参数必须完全满足es里记录的每个条件。即用上述条件查询时只要A职位满足。
我现在想的是如果能知道被查出来的记录在should里match了几次, 然后再和count比较如果一致则完全匹配,但是好像实现不了。请问大佬这种查询怎么写?
比如 (1.横线代表空,就是对这个条件没有要求 2. count代表这个职位有几个条件, 比如A职位要求年龄 语言 籍贯, 所以count是3)
job_title age work_year language address count
A职位 20 - java 上海 3
B职位 - 2 java 2
C职位 - 3 php 2
现在有个人的条件是:java 20岁 上海
用should查询 minimum_should_match=1, 这样A B职位肯定都会被查出来。 但是需求是必须查询传入的参数必须完全满足es里记录的每个条件。即用上述条件查询时只要A职位满足。
我现在想的是如果能知道被查出来的记录在should里match了几次, 然后再和count比较如果一致则完全匹配,但是好像实现不了。请问大佬这种查询怎么写?
5 个回复
Yao
赞同来自:
A职位 20 - java 上海 3
B职位 - 2 java - 2
C职位 - 3 php - 2
MCTW - 90后IT男
赞同来自:
{
"query": {
"bool": {
"must": [
{"match": {"age": 20}},
...
]
}
}
}
Yao
赞同来自:
zz_hello
赞同来自:
zz_hello
赞同来自: