我目前正在研究一個項目,我需要通過代碼搜索單詞文檔中的短語和單詞。搜索文檔
基本上,一個Word文檔將被上傳,然後搜索一些單詞。 什麼是最有效的方法來做到這一點?
編輯:我更感興趣的是用什麼來閱讀文檔(即MS Interop是最好的方式?),然後如果在搜索之前索引它會非常有利(如果是這樣的話? )。
編輯:搜索可能會有數以千計的短語。
我目前正在研究一個項目,我需要通過代碼搜索單詞文檔中的短語和單詞。搜索文檔
基本上,一個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