32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { repos } from '../data.ts'
|
|
import MiniSearch from 'minisearch'
|
|
import { Jieba } from '@node-rs/jieba'
|
|
|
|
const jieba = new Jieba()
|
|
|
|
// 1. 创建 MiniSearch 实例,配置要索引的字段
|
|
const miniSearch = new MiniSearch({
|
|
fields: ['name', 'description', 'author'], // 索引的字段
|
|
storeFields: ['name', 'description', 'author', 'stars', 'url'], // 搜索结果返回的字段
|
|
tokenize: (text) => jieba.cut(text, false), // 使用 jieba 分词
|
|
})
|
|
|
|
// 2. 添加文档到索引
|
|
miniSearch.addAll(repos)
|
|
|
|
// 3. 搜索"资料"
|
|
const searchQuery = '资料'
|
|
const results = miniSearch.search(searchQuery)
|
|
|
|
console.log(`搜索 "${searchQuery}" 的结果:`)
|
|
console.log(`找到 ${results.length} 条结果\n`)
|
|
|
|
results.forEach((result, index) => {
|
|
console.log(`--- 结果 ${index + 1} ---`)
|
|
console.log(`名称: ${result.name}`)
|
|
console.log(`描述: ${result.description}`)
|
|
console.log(`作者: ${result.author}`)
|
|
console.log(`Stars: ${result.stars}`)
|
|
console.log(`链接: ${result.url}`)
|
|
console.log('')
|
|
}) |