我們正在使用Sql Server 2012全文索引,但是我們希望將我們的數據庫移至Sql Azure。使用遷移工具,它告訴我們全文索引與Sql Azure不兼容(即使是預覽版的v12也不支持它,因此看起來並不像他們打算支持它)。使用Lucene.NET限制數據
因此,我們正在尋找替代品,迄今爲止我發現的最好的方法是使用Lucene.NET和AzureDirectory(https://azuredirectory.codeplex.com)。這將允許我們將索引存儲在blob存儲中,並將其緩存在本地託管網站的VM的文件系統上(也在Azure中)。
我們遇到的問題是,我們打算索引的數據是諸如新聞故事之類的項目,由於我們有一個發佈模型,所有用戶都無法看到這些新聞故事,所以只有部分用戶可以看到它們。在搜索新聞報道時使用全文索引,我們可以通過簡單地加入對他們可見的內容來限制使用搜索的數據,但是使用Lucene我們將無法做到這一點。
我們想出的想法是將新聞報道與索引中的新聞報道集合在一起,允許用戶查看新聞報道,恐怕我對Lucene非常陌生,而且我無法找到最佳方式然而
document.Add(new Field("Title",
news.Title,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
document.Add(new Field("Content",
news.Content,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
,如果我們定義爲
IEnumerable<int>
的用戶id的集合,我們怎樣才能把它們添加到新聞故事指數:要做到這一點,我們要添加索引的新聞報道,像這樣然後針對給定的用戶ID有效地搜索它們。此外,如果我們將100或1000個UserIds添加到lucene文檔中,性能會如何。有沒有比這條路更好的方式,因爲這可能是一個可怕的想法(可能是一個可怕的想法)?