ElasticSearch:即使一个字段不匹配,也显示多搜索的部分匹配
ElasticSearch: Show partial match for multi search even if one field does not match
我目前正在尝试对名字、姓氏和出生日期进行多项搜索查询。我希望结果显示 first、last 和 dob 的完全匹配,但如果名字和姓氏匹配但存在不同的出生日期,则也显示结果。
截至目前,我的代码只有 returns 如果所有三个字段都完全匹配,则结果
GET /account/data/_search
{
"query": {
"match": {
"first": {
"query": "Chris"
}
}
},
"query": {
"match": {
"last": {
"query": "Johnson"
}
}
},
"query": {
"match": {
"dob": {
"query": "10-10-1990"
}
}
}
}
这可以用简单的方法解决bool query
{
"query": {
"bool": {
"must": [
{
"match": {
"first": "TEXT"
}
},
{
"match": {
"last": "TEXT"
}
}
],
"should": [
{
"match": {
"dob": "TEXT"
}
}
]
}
}
}
我目前正在尝试对名字、姓氏和出生日期进行多项搜索查询。我希望结果显示 first、last 和 dob 的完全匹配,但如果名字和姓氏匹配但存在不同的出生日期,则也显示结果。
截至目前,我的代码只有 returns 如果所有三个字段都完全匹配,则结果
GET /account/data/_search
{
"query": {
"match": {
"first": {
"query": "Chris"
}
}
},
"query": {
"match": {
"last": {
"query": "Johnson"
}
}
},
"query": {
"match": {
"dob": {
"query": "10-10-1990"
}
}
}
}
这可以用简单的方法解决bool query
{
"query": {
"bool": {
"must": [
{
"match": {
"first": "TEXT"
}
},
{
"match": {
"last": "TEXT"
}
}
],
"should": [
{
"match": {
"dob": "TEXT"
}
}
]
}
}
}