搜索文档
本文关键字:文档 搜索 | 更新日期: 2023-09-27 18:06:51
我目前正在做一个项目,我需要通过代码在word文档中搜索短语和单词。
基本上一个Word文档将被上传,然后搜索一些单词。最有效的方法是什么?
编辑:我更感兴趣的是用什么来阅读文档(即MS Interop是最好的方式吗?),然后如果在搜索之前索引它是非常有利的(如果是的话,如何?)。
编辑:搜索可能有数千个短语
用c#打开word文档
之后就是使用Contains
方法或类似的方法了。其实没那么难。您可能想要查看大小写字母。
然后像这样做:(伪代码)
string[] stuffToFind = new string[] {"Google", "is your best friend"};
for (int i = 0; i < stuffToFind.Length; i++;)
{
for (int j = 0; j < document.Length; j++)
{
if(document[j].Contains(stuffToFind[i]))
Console.Writeline("Yeay, we found something");
}
}
我真的不喜欢这个解决方案。这也取决于word document对象的样子
Regex是查找模式的好方法。你可以在这里找到相同的信息:
正则表达式基本上你会使用MS的一个名为OpenXML SDK 2
的免费库来打开word文档(适用于word 2007及以上版本)…这个库不需要安装word就可以工作。然后你可以提取文本和搜索它,无论你喜欢-例如用System.Text.RegularExpressions.Regex
…
当您提取文本时,您可以通过在DB中存储具有上下文信息(位置等)的所有单词/短语来索引它,因此当用户给您短语搜索时,您只需要从DB中提取SELECT
-索引的设计取决于您-您需要不区分大小写的搜索吗?等。
另一种选择是使用Solr/Lucene进行索引,并通过API提供搜索UI来访问该索引…