我的输入信息是"Java开发人员与4年“,在数据库中有2个字段,这是技能和经验。
此处技能字段维护: java开发人员等
exp字段维护:4年等
当我搜索字符串(具有4年的java开发人员)时,它必须在这2个字段上进行搜索,并仅得到具有4年经验的java开发人员。
发布于 2020-05-25 18:19:30
您可以在您的两个字段(技能和经验)上使用布尔匹配查询和skill子句。
请参考https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html的例子和如何做。
工作示例
索引定义
{
"mappings": {
"properties": {
"skill": {
"type": "text"
},
"exp" :{
"type" : "text"
}
}
}
}索引文档示例
{
"skill" : "java",
"exp" : "4 years"
}
{
"skill" : "php",
"exp" : "4 years"
}搜索仅适用于具有4年exp的java
{
"query": {
"bool": {
"must": [
{
"match": {
"skill": "java"
}
},
{
"match": {
"exp": "4 years"
}
}
]
}
}
}和结果
"hits": [
{
"_index": "multimatch",
"_type": "_doc",
"_id": "1",
"_score": 1.0577903,
"_source": {
"skill": "java",
"exp": "4 years"
}
}
]https://stackoverflow.com/questions/61999946
复制相似问题