我正在使用jdbc-river插件从数据库表创建弹性搜索索引,该插件触及与客户地址表连接的客户表,一对多关系
目前,数据库分别有地址信息分别为street1,street2,street3,city,state,zip
这是我对客户及其地址进行搜索的片段,我正在进行一个布尔查询,该搜索应该在街道字段上进行多重匹配,并匹配其他查询,最小值应匹配3
"query": {
"bool": {
"should": [
{
"match": {
"FIRST_NAME": {
"query": "James"
}
}
},
{
"match": {
"LAST_NAME": "Smith"
}
},
{
"multi_match": {
"query": "10020 Pacific Mesa",
"fields": [
"STREET1",
"STREET2",
"STREET3"
]
}
},
{
"match": {
"CITY": "San Diego"
}
},
{
"match": {
"STATE_CODE": "CA"
}
},
{
"match": {
"ZIPCODE": "92121"
}
}
],
"minimum_should_match": "3"
}
}
}
虽然这有效,但它可以为匹配名字,城市和邮政编码的客户提供高分,因为他们符合最少3场比赛的标准
我的问题是,如何改进此设置?
我的想法/问题是:
老实说,我只是在寻找提供最高质量搜索的建议和指南,我试图寻找示例,但没有找到有关邮政地址索引的相关信息
无论如何,谢谢你的时间