mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-14 03:33:43 +08:00
43 lines
1.3 KiB
Java
43 lines
1.3 KiB
Java
package vip.mate.tool.search;
|
||
|
||
/**
|
||
* 搜索查询参数封装 — 借鉴 openclaw 的丰富工具参数设计
|
||
*
|
||
* @param query 搜索关键词(必须)
|
||
* @param freshness 时间范围过滤:day / week / month / year(可选)
|
||
* @param language 语言偏好:zh-CN / en / auto(可选)
|
||
* @param count 最大结果数:1-10,默认 5(可选)
|
||
*
|
||
* @author MateClaw Team
|
||
*/
|
||
public record SearchQuery(
|
||
String query,
|
||
String freshness,
|
||
String language,
|
||
Integer count
|
||
) {
|
||
private static final int DEFAULT_COUNT = 5;
|
||
private static final int MAX_COUNT = 10;
|
||
|
||
/** 从裸 query 字符串构建(向后兼容) */
|
||
public static SearchQuery of(String query) {
|
||
return new SearchQuery(query, null, null, null);
|
||
}
|
||
|
||
/** 获取 count,带默认值和上界限制 */
|
||
public int resolvedCount() {
|
||
if (count == null || count <= 0) return DEFAULT_COUNT;
|
||
return Math.min(count, MAX_COUNT);
|
||
}
|
||
|
||
/** freshness 是否有效 */
|
||
public boolean hasFreshness() {
|
||
return freshness != null && !freshness.isBlank();
|
||
}
|
||
|
||
/** language 是否有效 */
|
||
public boolean hasLanguage() {
|
||
return language != null && !language.isBlank() && !"auto".equalsIgnoreCase(language);
|
||
}
|
||
}
|