2011-08-26 167 views
0

我目前正在研究一個項目,我需要通過代碼搜索單詞文檔中的短語和單詞。搜索文檔

基本上,一個Word文檔將被上傳,然後搜索一些單詞。 什麼是最有效的方法來做到這一點?

編輯:我更感興趣的是用什麼來閱讀文檔(即MS Interop是最好的方式?),然後如果在搜索之前索引它會非常有利(如果是這樣的話? )。

編輯:搜索可能會有數以千計的短語。

+0

System.Text.RegularExpressions.Regex – Arun

回答

0

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"); 
    } 
} 

我真的不喜歡這種解決方案雖然。這也取決於文檔對象的外觀。

0

正則表達式是查找模式的好方法。你可以找到有關此相同:

REGEX

0

基本上你可以使用一個免費的圖書館從MS叫OpenXML SDK 2打開word文檔(以Word 2007和向上的作品)......這個庫作品,未經需要安裝字......然後你就可以提取文本和搜索反正你喜歡 - 例如用System.Text.RegularExpressions.Regex ...

當您通過存儲與環境中的所有詞/短語提取文本你可以索引它信息(posision等)在一個數據庫中,所以你只需要從數據庫SELECT當用戶給你的短語搜索 - 索引的設計取決於你 - 你需要不區分大小寫的搜索嗎?等

另一種選擇是使用Solr/Lucene索引,並通過API訪問索引提供搜索的UI ......