2009-10-29 5 views
11

जावा में ल्यूसीन का उपयोग कर दिनांक सीमाओं को खोजना संभव है? मैं दिनांक फ़ील्ड और तिथियों की सीमाओं के आधार पर ल्यूसीन खोज क्वेरी कैसे बना सकता हूं? उदाहरण के लिए:जावा में ल्यूसीन के साथ दिनांक सीमाओं पर खोज रहे हैं?

  • निर्दिष्ट तिथियों के बीच एक निर्धारित तिथि
  • -
  • पहले एक निर्धारित तिथि
  • पिछले 24 घंटों
  • पिछले सप्ताह पिछले एक महीने के भीतर
  • भीतर
  • भीतर के बाद।

[संपादित करें] मैं Lucene 2.4.1 का उपयोग कर रहा है और अपने सिस्टम वास्तव में विरासत और वास्तव में खराब तो परीक्षण किया है यदि संभव हो तो उन्नत करने के लिए

+1

हां यह संभव है। अगर आपको कुछ नमूना कोड चाहिए तो मुझे आपके लिए कुछ मिल जाएगा - बस इस पोस्ट पर टिप्पणी में पूछें। कार्रवाई में लुसीन पर एक नज़र डालें - आप इस प्रश्न का उत्तर और कई अन्य लोगों को भी ढूंढ सकते हैं। –

उत्तर

18

Lucene के लिए नहीं मैं चाहते हैं (संस्करण 2.9 वैसे भी पहले) केवल स्टोर स्ट्रिंग मान, और यह केवल उस डेटा पर लेक्सिकोोग्राफिक रेंज क्वेरी का समर्थन करता है। इसलिए यदि आप दिनांक/समय डेटा और प्रदर्शन श्रेणी सीमाओं को स्टोर करना चाहते हैं, तो आपको अपने डेटा/समय मानों को स्पष्ट रूप से प्रारूपित करने की आवश्यकता है ताकि उन्हें लेक्सिकोोग्राफ़िक रूप से आदेश दिया जा सके।

उदाहरण के लिए, 2009-10-29T15:34:00 की तरह कुछ के रूप में अपने तारीख/बार की दुकान, और फिर करते हैं जैसे [2009-10-29T15:00:00 TO 2009-10-29T16:00:00]

के रूप में कहीं और बताया गया है, Lucene 2.9 अंत में गैर स्ट्रिंग डेटा के खिलाफ श्रृंखला के प्रश्नों के लिए समर्थन शुरू, जिससे सीमा प्रश्नों यह सब इतना आसान है।

+7

'DateTools.dateToString (दिनांक, संकल्प .SECOND) 'विधि का उपयोग करके आप ल्यूसीन रूप में दिनांक स्ट्रिंग का उत्पादन करने में मदद कर सकते हैं, जो' 20110223220000' जैसा है, जिसका अर्थ है' 2011-02-23 22: 00: 00'। – bekce

संबंधित मुद्दे