MCPcopy
hub / github.com/fish2018/pansou / FilterResultsByKeyword

Function FilterResultsByKeyword

plugin/plugin.go:220–255  ·  view source on GitHub ↗

============================================================ 第四部分:工具函数 ============================================================ FilterResultsByKeyword 根据关键词过滤搜索结果的全局辅助函数

(results []model.SearchResult, keyword string)

Source from the content-addressed store, hash-verified

218
219// FilterResultsByKeyword 根据关键词过滤搜索结果的全局辅助函数
220func FilterResultsByKeyword(results []model.SearchResult, keyword string) []model.SearchResult {
221 if keyword == "" {
222 return results
223 }
224
225 // 预估过滤后会保留80%的结果
226 filteredResults := make([]model.SearchResult, 0, len(results)*8/10)
227
228 // 将关键词转为小写,用于不区分大小写的比较
229 lowerKeyword := strings.ToLower(keyword)
230
231 // 将关键词按空格分割,用于支持多关键词搜索
232 keywords := strings.Fields(lowerKeyword)
233
234 for _, result := range results {
235 // 将标题和内容转为小写
236 lowerTitle := strings.ToLower(result.Title)
237 lowerContent := strings.ToLower(result.Content)
238
239 // 检查每个关键词是否在标题或内容中
240 matched := true
241 for _, kw := range keywords {
242 // 对于所有关键词,检查是否在标题或内容中
243 if !strings.Contains(lowerTitle, kw) && !strings.Contains(lowerContent, kw) {
244 matched = false
245 break
246 }
247 }
248
249 if matched {
250 filteredResults = append(filteredResults, result)
251 }
252 }
253
254 return filteredResults
255}
256
257// ============================================================
258// 第五部分:异步插件基础设施(初始化、工作池、缓存)

Callers 15

searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92
parseSearchResultsMethod · 0.92
searchImplMethod · 0.92
searchImplMethod · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected