簡體   English   中英

幫助搜索引擎架構.NET C#

[英]Help with Search Engine Architecture .NET C#

我正在嘗試為所有與特定精神群體相關的文學(書籍,文章等),音樂和視頻創建搜索引擎。 輸入關鍵字后,我想顯示指向所顯示關鍵字的所有PDF文章的鏈接,以及所有使用相關關鍵字標記的音樂文件和視頻文件。 用戶應該能夠使用諸如作者/藝術家,地點,日期/時間等信息對其進行過濾。當用戶點擊其中一個結果鏈接(例如,書名)時,他們將被帶到另一個頁面,其中包含片段從那本書到處都可以找到關鍵字。

我想過使用Lucene庫(或Searcharoo)來實現我的PDF搜索,但我還需要一個數據庫來標記所有其他信息,以便結果可以通過作者/藝術家信息等進行過濾。所以我在考慮擁有表格用於文本,音樂和視頻,以及包含每個文件路徑的字段。 輸入關鍵字時,我需要在數據庫中搜索音樂和視頻文件,還需要搜索PDF文件,當應用過濾器時,音樂和視頻搜索很容易,但是根據過濾器限制文本搜索越來越混亂。

我的方法是否正確? 有沒有更好的方法來做到這一點? 由於搜索內容僅限於精神群體,因此無需搜索無限數量的項目。 我會說約100-500本書和1000-5000首歌。

Lucene是一種快速啟動和運行而不需要太多努力的好方法,還有一些擴展索引和搜索功能的領域,以更好地滿足您的需求。 它還有幾種用於常見文件類型的內置分析器,例如HTML / XML,PDF,MS Word文檔等。

它提供了使用各種字段的能力,並且它們不一定必須在所有文檔中統一(換句話說,音樂文件可能具有與基於文本的內容不同的屬性,例如藝術家,標題,長度等。 。),非常適合存儲不同類型的內容。

不知道你正在做什么的確切實現,這可能是也可能不可行,但對於標記和其他相關功能,你也可以考慮使用數據庫,例如MySQL或SQL Server並行Lucene指數。 使用Lucene索引進行全文搜索,然后在獲得結果集后,轉到數據庫以提取所有關系內容。 我們公司以前做過這件事,實際上並不像聽起來那么令人頭痛。

注意:如果您決定采用這種方式,請小心,因為Lucene提供的“唯一ID”具有高度不穩定性(每次優化索引時它都會更改),因此您需要存儲實際ID(主鍵在數據庫)作為Document上的一個單獨字段。

另一個好處是,如果你使用C#.NET,就會有一個名為Lucene.Net的端口,它完全用C#編寫。 這里的缺點是你在所有最新功能上落后了幾個月,但如果你真的需要它們,你可以隨時查看Java源代碼並手動實現所需的更新。

是的,有一個更好的方法。 嘗試Solr ,特別是檢查方面。 它會為你省去很多麻煩。

您可以嘗試使用MS Search Server Express Edition,其中一個主要好處是它是免費的。

http://www.microsoft.com/enterprisesearch/en/us/search-server-express.aspx#none

如果您肯定想要使用數據庫路由,那么您應該使用啟用了全文搜索的 SQL Server。 您也可以將它與Express版本一起使用。 然后,您可以非常輕松地存儲和搜索PDF的內容(只要您安裝免費的Adobe PDF iFilter)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM