Files
search-test/minisearch/index.ts

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('')
})