2009-10-29 11 views
11

Java'da Lucene'yi kullanarak tarih aralıklarında arama yapmak mümkün mü? Tarih alanlarına ve tarih aralıklarına göre Lucene arama sorgularını nasıl oluştururum? Örneğin: Belirtilen tarihler arasındaJava'da Lucene ile tarih aralıkları mı arıyorsunuz?

  • belirli bir tarihe
  • -
  • önce son 24 saat geçen hafta son bir ay içinde
  • içinde
  • içinde belirtilen tarih
  • sonra.

[Düzenle] i Lucene 2.4.1 kullanıyorum ve benim sistem gerçekten eski ve gerçekten kötü böylece test edilmiştir

+1

Evet, mümkün. Bazı örnek kodlara ihtiyacınız varsa, sizin için bir şeyler bulabilirim - sadece bu yazıya yorum yazabilirsiniz. Lucene in Action bölümüne bir göz atın - bu sorunun cevabını ve başkalarını da bulabilirsiniz. –

cevap

18

lucene yükseltmek zorunda değil mümkünse ben istiyorum (Neyse sürümü 2.9 öncesi) sadece Dize değerlerini depolar ve yalnızca bu verilerdeki sözlüksel aralık sorgularını destekler. Bu nedenle, tarih/saat verileri ve performans aralığı sorgularını saklamak isterseniz, veri/zaman değerlerinizi sözdizimsel olarak sipariş verebilecek şekilde biçimlendirmeniz gerekir.

Örneğin, sonra yok 2009-10-29T15:34:00 gibi bir şey olarak tarih/kere saklamak ve başka yerlerdeki işaret, Lucene 2.9 nihayet hale olmayan dize veri karşı aralık sorguları için destek tanıtıldı gibi [2009-10-29T15:00:00 TO 2009-10-29T16:00:00]

gibi aralık sorguları Bu daha kolay.

+7

'DateTools.dateToString (tarih, Resolution.SECOND) yöntemini kullanarak, '2011-02-23 22: 00: 00' anlamına gelen" 20110223220000 "gibi bir lümen biçiminde tarih dizesi oluşturmanıza yardımcı olur. – bekce

İlgili konular