2015-03-18 3 views
5

मेरे पास कुछ दस्तावेज़ हैं जहां प्रत्येक दस्तावेज़ में startDate और endDate दिनांक फ़ील्ड हैं। मुझे इन दोनों मूल्यों के साथ सभी दस्तावेजों की आवश्यकता है। मुझे कोई प्रश्न नहीं मिला जो मुझे ऐसा करने में मदद करेगा।समान स्टार्टडेट्स और एंडडेट

उत्तर

1

यह 2 तरीके

  1. सूचकांक समाधान में प्राप्त किया जा सकता - अनुक्रमण isDateSame नामक एक अतिरिक्त क्षेत्र जोड़ने के लिए और के लिए सेट करते समय सही या गलत आधारित StartDate और endDate के मूल्य पर। फिर आप उस क्षेत्र के आधार पर आसानी से एक क्वेरी कर सकते हैं। यह सबसे अच्छा अनुकूलित समाधान
  2. स्क्रिप्ट समाधान - एलिस्टिक्सडर्च फ़ील्ड डेटा में सभी अनुक्रमित डेटा को बनाए रखता है जो एक रिवर्स रिवर्स इंडेक्स की तरह है। स्क्रिप्ट का उपयोग करके आप किसी अनुक्रमित फ़ील्ड तक पहुंच सकते हैं और तुलना कर सकते हैं। यह बहुत तेज है लेकिन पहले के रूप में उतना अच्छा नहीं है। आप निम्न क्वेरी का उपयोग उसी
के लिए कर सकते हैं
3

Elasticsearch स्क्रिप्ट फ़िल्टर का समर्थन करता है, जिसे आप इस मामले में उपयोग कर सकते हैं। More Info कुछ इस तरह है कि तुम क्या आवश्यकता होगी -

POST /<yourIndex>/<yourType>/_search? 
{ 
    "query": { 
     "filtered": { 
      "filter": { 
       "script": { 
        "script": "doc['startDate'].value == doc['endDate'].value" 
       } 
      } 
     } 
    } 
} 
संबंधित मुद्दे