2012-09-17 8 views
5

Ravendb'yi sorgulamak için http api kullanıyorum (bu yüzden bir LINQ sorgusu, benim soruma çözüm değil).Lucene'i kullanarak tarihleri ​​içeren bir ravendb dizini nasıl sorgularsınız?

{ 
    "editDate": "2012-08-29T15:00:00.846Z" 
} 

ve ben endeksine sahip: Benim Ürün belge şöyle

from doc in docs.Product 
select new { doc.editDate } 

belirli bir tarihte VE saatten önce tüm belgeleri sorgulamak istiyorum. Bu sözdizimini kullanarak DATE tarihinde sorgulayabilir:

editDate: [NULL TO 2012-09-17] 

ancak ben de zaman bileşeni sorgulamak anlamaya olamaz. Herhangi bir fikrin var mı?

cevap

5

kullanarak o sorgulayabilir:

editDate: [NULL TO 2012-09-17T15:00:00.846Z] 

Eğer bunun bir parçası değer veriyorsan kullanın: aklınıza gelebilecek

editDate: [NULL TO 2012-09-17T15:00] 

Not şöyle, sorgunun parçaları kaçmak için:

editDate: [NULL TO 2012\-09\-17T15\:00] 

bu da sizi çalışması için Alanın analiz edildiğinden emin olmanız gerekir. Raven Studio'da - Alan Ekle -> editDate'de ve Indexing'i Analyzed olarak ayarlayın.

+0

Evet, kaçmak gerekiyor, ancak bu hala benim için işe yaramadı. Gün daha büyükse (2012-09-18T15: 00), o zaman dokümanlar bulunacaktır, ancak aynı gün ise, ancak daha sonra (2012-09-17T15: 30) ise belge bulunamaz. –

+0

Figür çıktı - alanı analiz etmek gerekiyor, bunu http api kullanarak nasıl ayarlıyorsunuz? (docs içinde bulamadım) –

+0

Bu kötü bir öneridir. Tarih alanları asla analiz edilmemelidir. –

-1

Bu soruna geçici bir çözüm bulmanın bir yolu, değeri tarih değil, unix döneminden bu yana geçen saniye sayısı olarak saklamaktır.

Bu, kolayca karşılaştırabileceğiniz bir sayıyla sonuçlanır.

Ben javascript ve an js kitaplığı kullanıyorum:

{ 
    "editDate": "2012-08-29T15:00:00.846Z", 
    "editDateUnix": moment("2012-08-29T15:00:00.846Z").unix() 
} 

benim endeksi Herhangi:

from doc in docs.Product 
select new { doc.editDate, doc.editDateUnix } 

ve benim lucene sorgusu:

"editDate: [NULL TO "+moment("2012-09-17").unix()+"]" 
+0

Bu sorununuzu çözüyor mu, yoksa başka cevaplar mı arıyorsunuz? – MattDavey

+0

Bunu çözüyor, ancak başka bir yolu varsa, o zaman ne olduğunu bilmek isterim! –