某三个字段完全匹配,剩余字段模糊匹配

一个对象有12个字段,
想对其中2个字段进行精确匹配
剩余的几个字段模糊匹配,我写的语句如下,但是不工作,不知道为什么,想要达到的效果是,在name,era,trades,education,achievement,summary字段中搜索searchContent,然后精确匹配professions字段等于d.professions,era字段等于e.era。
client.search({
index: 'engineer',
type: 'engineers',
from: (page - 1) * rows,
size: rows,
body: {
query: {
bool: {
should: {
multi_match: {
query: searchContent,
fields: ['name', 'era', 'trades', 'education', 'achievement', 'summary', 'content', 'professions']
}
},
must:[
{
term:{professions:d.professions}
},
{
term:{era:e.era}
}
]
}
},
}
})
已邀请:

medcl - Elastic 🇨🇳 !

赞同来自:

你的mapping 设置可以贴一下么?要先知道 mapping 之后才能确定如何用哪个查询
 

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:blog.csdn.net/laoyang360

赞同来自:

前三个字段must结合term,其他should multi_match结合多字段,外层bool

要回复问题请先登录注册