目前有这样一个需求:例如我数据库有一个省份数据-宁夏回族自治区,有一个接口传递过来的省份参数为宁夏省,我需要把宁夏省这样的值也认为是匹配的选项,可以成功匹配到我数据库的宁夏回族自治区这个数据。当然举一反三,像 香港特别行政区-->香港省,上海市-->上海城区 也是成立的。
希望各位有好的思路可以帮帮忙,不胜感激!
先看对传入的数据能否做限制,比如输入框改为下拉框,保证数据能准确匹配;
如果不能,收到参数后,先对参数进行处理,分词匹配,先找到正确的想要的正确名字,然后将参数替换为正确的名字;
最终都是用正确的名字去查数据库,尽量不要去数据库模糊
百度搜索,模糊查询
思路:使用静态成员变量 Map 维护映射关系;示例代码如下:
public class ProvinceUtil {
private static Map<String, String> aliasMap = new HashMap<>();
static {
aliasMap.put("宁夏省", "宁夏回族自治区");
aliasMap.put("香港特别行政区", "香港省");
aliasMap.put("上海市", "上海城区");
}
public static String getName(String alias) {
return aliasMap.getOrDefault(alias, alias);
}
}