搜索文档

问题描述:

我目前正在研究一个项目,我需要通过代码搜索单词文档中的短语和单词。搜索文档

基本上,一个Word文档将被上传,然后搜索一些单词。 什么是最有效的方法来做到这一点?

编辑:我更感兴趣的是用什么来阅读文档(即MS Interop是最好的方式?),然后如果在搜索之前索引它会非常有利(如果是这样的话? )。

编辑:搜索可能会有数以千计的短语。

+0

System.Text.RegularExpressions.Regex – Arun

Open a word document in C#

之后,它只是一个使用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"); 
    } 
} 

我真的不喜欢这种解决方案虽然。这也取决于文档对象的外观。

正则表达式是查找模式的好方法。你可以找到有关此相同:

REGEX

基本上你可以使用一个免费的图书馆从MS叫OpenXML SDK 2打开word文档(以Word 2007和向上的作品)......这个库作品,未经需要安装字......然后你就可以提取文本和搜索反正你喜欢 - 例如用System.Text.RegularExpressions.Regex ...

当您通过存储与环境中的所有词/短语提取文本你可以索引它信息(posision等)在一个数据库中,所以你只需要从数据库SELECT当用户给你的短语搜索 - 索引的设计取决于你 - 你需要不区分大小写的搜索吗?等

另一种选择是使用Solr/Lucene索引,并通过API访问索引提供搜索的UI ......