मैं वसंत ढांचे के साथ लोचदार खोज में गतिशील रूप से एकाधिक बूलियन ऑपरेशन के लिए क्वेरी उत्पन्न करना चाहता हूं।

इलास्टिक्स खोज में मेरा डेटा जैसा है

{
   "masterID" : "<id>"
   "processedData": [
                {
                    "string_value": "22",
                    "key": "a"
                },
                {
                    "string_value": "abc",
                    "key": "s"
                },
                {
                    "string_value": "xyz",
                    "key": "n"
                }
            ]
}

मैं इस बूलियन ऑपरेशन के लिए क्वेरी निष्पादित करना चाहता हूं ((एन = xyz) && (एस = एबीसी))

2
Abhay Patel 18 पद 2020, 13:58

1 उत्तर

सबसे बढ़िया उत्तर

ऐरे इनर ऑब्जेक्ट को क्वेरी करने में सक्षम होने के लिए आपको अपने प्रोसेस्डडेटा को नेस्टेड प्रकार के रूप में मैप करना चाहिए, ऑब्जेक्ट्स के एरे काम नहीं करते हैं जैसा कि आप उम्मीद करेंगे क्योंकि आप एरे में अन्य ऑब्जेक्ट्स से स्वतंत्र रूप से प्रत्येक ऑब्जेक्ट को क्वेरी नहीं कर सकते। यदि आपको ऐसा करने में सक्षम होने की आवश्यकता है तो आपको ऑब्जेक्ट डेटा प्रकार के बजाय नेस्टेड डेटा प्रकार का उपयोग करना चाहिए। अपनी मैपिंग बदलने के बाद आप इस तरह की बूल क्वेरी के साथ नेस्टेड क्वेरी बना सकते हैं:

{
  "query": {
    "nested": {
      "path": "processedData",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "key": "n"
              }
            },
            {
              "match": {
                "string_value": "xyz"
              }
            }
          ]
        }
      }
    }
  }
}

अधिक जानकारी के लिए आप यहां देख सकते हैं: https://www। लोचदार.co/guide/hi/elasticsearch/reference/master/array.html

1
Kaveh 19 पद 2020, 22:40