2012-01-13 9 views
0

RavenDBの新機能です。ご質問が愚かであればごめんなさい。私は、DateTimeプロパティを含むクラスを持っています。このクラスのインスタンスをRavenDBに格納します。私は、インデックスに次のように定義している:インデックスとDateTimeによるRavenDBクエリ

from doc in docs.Orders 
from docItemsItem in ((IEnumerable<dynamic>)doc.Items).DefaultIfEmpty() 
select new { Items_Price_Amount = docItemsItem.Price.Amount, Items_Quantity = docItemsItem.Quantity, Date = doc.Date } 

http://dl.dropbox.com/u/3055964/Capture.GIF <を - ここにスクリーンショットここ

は、クラス定義のです:私は上に示した指標でRavenDBを照会しようとすると、今

public class Order 
    { 
     public DateTime Date { get; set; } 
     public IList<OrderItem> Items { get; set; } 
     public string CustomerId { get; set; } 

     public Order() 
     { 
      Items = new List<OrderItem>(); 
     } 
    } 

クエリは結果をまったく生成しません。

var orders = session.Query<Order>("OrdersIndex").Where(o => o.Date > DateTime.Now).ToList(); // orders.Count == 0 

私はこのように、クエリからインデックスを省略した場合:

var orders = session.Query<Order>().Where(o => o.Date > DateTime.Now).ToList(); // orders.Count == 128 

一時索引が作成され、期待通りeveythingが機能しています。

誰かが私の質問に間違いがないと思いますか?おかげさまで

UPDATE

オールライト、私は(スクリーンショットに示されている)管理スタジオを経由して数量、フィールド日付、アイテム、価格、金額やアイテムを削除し、現在のクエリが正常に動作します。誰にも何の理由がありますか?これらのフィールドを明示的に定義する目的は何ですか?

+0

あなたはここで何が起こっているのかを理解するには、完全な失敗のテストを提供しようとすることはできますか? –

+0

あなたのお返事ありがとうございます。Ayende、あなたのご協力とRavenDBに投資したあなたの努力を感謝します:)私は数時間後に私の投稿を更新し、データベースと完全な作業テストをアップロードします。しかし、おそらく、これは私が正しくインデックスを使用していなかったと思うので、私のせいでした。 – Davita

答えて

3

インデックスの日付がインデックス(x => x.Date、FieldIndexing.Default)として格納されていることを確認します。

FieldIndexing.Analysedに設定しましたが、正しい結果が返されませんでした。

私は別のFieldIndexingオプションの違いによりアップ読み取る必要がある:)

関連する問題