feat: 统一列表模糊搜索行为
- 统一管理端和用户中心搜索参数及多字段包含匹配 - 修复聊天搜索竞态并优化部门重名路径展示 - 补充部门展开、模型空白词和聊天查询回归测试
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package tech.easyflow.common.util;
|
||||
|
||||
/**
|
||||
* 搜索关键词处理工具。
|
||||
*/
|
||||
public final class SearchKeywordUtil {
|
||||
|
||||
private SearchKeywordUtil() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 去除搜索关键词首尾空格,空值统一为空字符串。
|
||||
*
|
||||
* @param keyword 原始搜索关键词
|
||||
* @return 规范化后的关键词
|
||||
*/
|
||||
public static String normalize(String keyword) {
|
||||
return keyword == null ? "" : keyword.trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造将 LIKE 通配符按普通字符处理的包含匹配模式。
|
||||
*
|
||||
* @param keyword 搜索关键词
|
||||
* @return 可参数化传入 LIKE 的匹配模式
|
||||
*/
|
||||
public static String literalContainsPattern(String keyword) {
|
||||
String normalizedKeyword = normalize(keyword);
|
||||
String escapedKeyword = normalizedKeyword
|
||||
.replace("\\", "\\\\")
|
||||
.replace("%", "\\%")
|
||||
.replace("_", "\\_");
|
||||
return "%" + escapedKeyword + "%";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user