2016-11-10 6 views
48

के लिए पंजीकृत है मेरे पास एक क्वेरी है जिसे मुझे परिणामों को फ़िल्टर करने की आवश्यकता है।कोई [क्वेरी] [फ़िल्टर]

यह मैं no [query] registered for [filtered] कह कोई त्रुटि मिलती है मेरी क्वेरी

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "multi_match": { 
        "default_operator": "AND", 
        "fields": [ 
         "author", 
         "title", 
         "publisher", 
         "year" 
        ], 
        "query": "George Orwell" 
       } 
      }, 
      "filter": { 
       "terms": { 
        "year": [ 
         1980, 
         1981 
        ] 
       } 
      } 
     } 
    } 
} 

है। मैं स्पष्ट रूप से फ़िल्टर किए गए क्षेत्र के लिए एक क्वेरी है। मैं elasticsearch पेज पर फ़िल्टर किए गए क्वेरी प्रलेखन में दिए गए प्रारूप का पालन कर रहा हूं। https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html

उत्तर

90

filtered क्वेरी को ES 5.0 में हटा दिया गया है और हटा दिया गया है। अब आपको bool/must/filter क्वेरी का उपयोग करना चाहिए।

{ 
    "query": { 
     "bool": { 
      "must": { 
       "multi_match": { 
        "operator": "and", 
        "fields": [ 
         "author", 
         "title", 
         "publisher", 
         "year" 
        ], 
        "query": "George Orwell" 
       } 
      }, 
      "filter": { 
       "terms": { 
        "year": [ 
         1980, 
         1981 
        ] 
       } 
      } 
     } 
    } 
} 

यहाँ दो प्रश्नों के बीच मतभेद हैं:

3,4c3,4 
<   "bool": { 
<    "must": { 
--- 
>   "filtered": { 
>    "query": { 
6c6 
<      "operator": "and", 
--- 
>      "default_operator": "AND", 

पुनश्च: संदर्भ पृष्ठ आप पर परिशिष्ट "हटाए गए पृष्ठों" में स्थित है देख रहे हैं, तो यह का हिस्सा नहीं अब मुख्य दस्तावेज।

+1

5.5 का उपयोग करते समय ऐसा लगता है कि डिफ़ॉल्ट_ऑपरेटर को बहु_मैच क्वेरी से भी हटा दिया गया है, इसलिए यह संभवतः इस जवाब को अपडेट करने लायक है क्योंकि इससे मुझे लगता है कि ऊपर की ओर काम करने जा रहा गलत गलती है, मैंने अपने खेतों से मेल खाने के लिए क्वेरी में संशोधन किया तो महसूस करें कि यह काम नहीं किया! यह मेरे लिए एक आसान फिक्स था हालांकि बी सिर्फ डिफॉल्ट ऑपरेटर को हटा रहा था, लेकिन भविष्य के पाठकों के लिए संपादन के लायक हो सकता है, त्रुटि यह है: [multi_match] क्वेरी [default_operator] – Birdy

+0

का समर्थन नहीं करती है @ वास्तव में पैरामीटर को 'ऑपरेटर' नाम दिया गया है और ' default_operator', मैंने अपना जवाब संशोधित किया है, इसके बारे में खेद है। – Val

+0

वैल - यदि आपको एक मिनट मिलता है तो कृपया मुझे लॉगस्टैश मुद्दे पर मेरी मदद करें, मैंने 48 घंटे से अधिक समय तक टेबल से अपना सिर टक्कर लगी है और मुझे पता है कि आप उस क्षेत्र में एक विशेषज्ञ हैं जो दिन हाहा को बचाने में मदद कर सकता है धन्यवाद, अगर आप कर सकते हैं तो मैं हमेशा कर्ज में रहूंगा !! https://stackoverflow.com/questions/45577572/logstash-error-when-converting-mysql-value-to-nested-elasticsearch-property-on-s – Birdy

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