搜索文档

本文关键字:文档 搜索 | 更新日期: 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来访问该索引…