搜索文档
问题描述:
我目前正在研究一个项目,我需要通过代码搜索单词文档中的短语和单词。搜索文档
基本上,一个Word文档将被上传,然后搜索一些单词。 什么是最有效的方法来做到这一点?
编辑:我更感兴趣的是用什么来阅读文档(即MS Interop是最好的方式?),然后如果在搜索之前索引它会非常有利(如果是这样的话? )。
编辑:搜索可能会有数以千计的短语。
答
之后,它只是一个使用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");
}
}
我真的不喜欢这种解决方案虽然。这也取决于文档对象的外观。
答
基本上你可以使用一个免费的图书馆从MS叫OpenXML SDK 2
打开word文档(以Word 2007和向上的作品)......这个库作品,未经需要安装字......然后你就可以提取文本和搜索反正你喜欢 - 例如用System.Text.RegularExpressions.Regex
...
当您通过存储与环境中的所有词/短语提取文本你可以索引它信息(posision等)在一个数据库中,所以你只需要从数据库SELECT
当用户给你的短语搜索 - 索引的设计取决于你 - 你需要不区分大小写的搜索吗?等
另一种选择是使用Solr/Lucene索引,并通过API访问索引提供搜索的UI ......
System.Text.RegularExpressions.Regex – Arun