Closed Moyf closed 8 hours ago
精确匹配词语可以实现,后面的line语法似乎并非必要,出现多个不同匹配词的行会优先排在前面。
另外,近期空闲时间很少,只能以后再实现了
精确匹配词语可以实现,后面的line语法似乎并非必要,出现多个不同匹配词的行会优先排在前面。
另外,近期空闲时间很少,只能以后再实现了
(希望能支持一下精确匹配词语,恰好最近又碰到这个需求了 > <
我研究了下,实现精确匹配困难重重且效果不好。本插件所使用的BM25算法库Minisearch的作者未支持精确匹配功能: https://github.com/lucaong/minisearch/issues/216 所以只能在模糊匹配后,读取所有候选文件并进行全文匹配、过滤掉不包含精确匹配词的文件。如果候选文件大于20个,延迟就很明显了;对于大的库可能有几百上千个候选项,那得等十几秒出结果...此外改起来也有点麻烦,会产生不少相似代码。
对于你的场景来说,“输入/np 本次搜索取消前缀匹配”这样的功能够用吗?比如这样:
未取消前缀匹配时搜索pr的结果确实不够好:
我研究了下,实现精确匹配困难重重且效果不好。本插件所使用的BM25算法库Minisearch的作者未支持精确匹配功能…… 啊,原来是这样……那支持起来确实好折腾了。
我觉得你说的这个特性(取消前缀匹配)也能很大程度上解决我所遇到的问题!像是 PR/Promise 还有 Wind/Windows 之类的情况。
如果做的话,是否可以支持自定义 /np
关键字 + 支持在设置里直接配置全局的「是否前缀匹配」开关?
(话说顺便问一下,大小写匹配麻烦吗?)
以及,完全不着急!现在已经是一个非常好用的插件了,等您有时间了再考虑就好!
今天有点空,都实现了,看看有什么问题吗
受 Minisearch API 限制,区分大小写的切换与重建索引挂钩,所以没写调整它的指令
嗯,我这边更新试了一下:
/np PR
取消前缀匹配:✅这几个都没问题!
(然后自定义 /np
关键字的设置没找到——不过也不关键,这个输入一下还挺快的;测试的时候发现是只能放在检索词的最前面对吗?比如只能用 /np PR
,不能用 PR /np
🤔
目前是只能放在检索内容前面,以后有空了改成前面或后面吧,筛选式命令很符合直觉;没有实现“自定义命令的名字“;在 README 还有其他的命令介绍
Please describe your idea concisely
比如现在搜索
pr
,会把promise
之类的单词也搜索进去; 能不能用"pr"
来设定 全字匹配,在这个情况下只检索pr
这个词,而忽略其他的pr...
开头的词?另外还有像是
line()
之类的限定词,只搜索出现在同一行/同一段内的情况,能更好地控制搜索范围Screenshots