2012-02-25 137 views
2

在RavenDB Studio中,我可以看到69個CustomVariableGroup文檔。我的查詢只返回66個。經過一番挖掘,我發現返回的而不是的三個文檔具有新的類結構:已刪除一個屬性。由於我保存了這三個CustomVariableGroup文檔,所以它們的結構與其他66不同。爲什麼當我查詢所有這些文檔時,是否只有其他66個文檔具有舊結構?RavenDB移除屬性的查詢文檔

我的兩個C#代碼,而我在LinqPad查詢,只返回66.下面是LinqPad查詢:

Session.Query<CustomVariableGroup>().Dump(); // returns 66 docs 

但是,如果我這樣做,我可以得到缺少三個文件之一從以上查詢:

Session.Query<CustomVariableGroup>().Where(x => x.Name == "Derating").Dump(); 

如何獲得一個查詢中返回的所有69個文檔?

**編輯:索引信息**

在LinqPad查詢(和烏鴉服務器輸出)的SQL選項卡,該指數看起來是這樣的:

網址:/索引/動態/ CustomVariableGroups?查詢= &開始= 0 &的pageSize = 128 &聚集=無

我沒有看到烏鴉Studio中的指數,大概是因爲它是動態的。

**編輯2:這個破解工作**

如果我這樣做,我得到的所有69個文件:

Session.Query<CustomVariableGroup>().Where(x => x.Name != string.Empty).Dump(); 

我的猜測是,烏鴉必須使用舊的指標,只有得到仍包含該已刪除列的文檔。我不知何故需要使用新的/不同的索引...

有趣的是,這是行不通的;它只返回66:

Session.Query<CustomVariableGroup>().Where(x => x.Id != string.Empty).Dump(); 

**編輯3:這個技巧的作品,以及**

Session.Advanced.LuceneQuery<CustomVariableGroup>("Raven/DocumentsByEntityName").Where("Tag:CustomVariableGroups").Dump(); 
+0

我會盡量讓你自己的地圖(索引),看看你是否得到相同的結果。您可能還想將此問題發佈到RavenDB Google Group Ayende /團隊監控該組,並且很可能會很快回復。如果你找到答案,請將它發回給你。我想知道你發現了什麼......我對RavenDB仍然很新。 – scarpacci 2012-02-25 19:38:20

+0

我確實嘗試了一個索引,但仍只獲得了66個文檔。如果我很快沒有在這裏得到答案,我會嘗試谷歌組。是的,我也會在這裏發佈任何答案。謝謝! – 2012-02-26 00:22:00

回答

2

的指標,與舊的財產,已被刪除。

** **前此沒有工作(僅返回69個文件第66條):

Session.Query<CustomVariableGroup>().Dump(); 

** **修復刪除使用的是從我的C#刪除舊的性能指標類:

在烏鴉工作室,我刪除了這個指數:自動/ CustomVariableGroups/ByApplicationId

** **後這種相同的查詢現在返回所有69個文件:

Session.Query<CustomVariableGroup>().Dump(); 

現在,我不確定爲什麼這些查詢會使用該索引。我正在查詢所有CustomVariableGroup文檔,而不是ByApplicationId。但是,刪除該索引解決了它。我相信別人可以解釋爲什麼。

+1

當您使用動態查詢時,我們選擇一個匹配的索引。如果您的索引僅使用了該屬性,則可能已選擇該索引,然後您將無法獲取沒有該屬性的項目 – 2012-02-26 16:13:42

+0

謝謝,先生。您的評論確認這是正確的答案。 – 2012-02-26 17:44:29

+0

我們應該如何發現索引變得無效? – SandRock 2015-05-13 20:11:40

0

什麼指標是什麼樣子?您是手動創建索引還是動態創建索引?只是想知道,如果這是基於上面的評論的問題的原因,對對象進行了結構更改。

--S

+0

在問題中查看我的**編輯**。 – 2012-02-25 19:31:19

0

難道是一個陳舊的指標..如果它不返回你所期望的結果。

你可以使用

.Customize(X => x.WaitForNonStaleResultsAsOfLastWrite())

+0

我其實並沒有幫助。 – 2012-02-26 00:22:20

+0

但我確實嘗試了一個可以工作的HACK。請參閱上面的**編輯2 **。 – 2012-02-26 00:28:07