2016-07-17 6 views
8

मेरे पास सभी मिलान दस्तावेजों को हटाने के लिए निम्नलिखित नेस्ट क्वेरी है, काफी सीधे आगे है लेकिन मुझे 400 खराब अनुरोध मिल रहा है।Elasticsearch DeleteByQuery काम नहीं कर रहा है, 400 खराब अनुरोध प्राप्त कर रहा है

var client = new ElasticClient(); 
     var request = new DeleteByQueryRequest<Type>("my-index") 
     { 
      Query = new QueryContainer(
        new TermQuery 
        { 
         Field = "versionId", 
         Value = "ea8e517b-c2e3-4dfe-8e49-edc8bda67bad" 
        } 
       ) 
     }; 
     var response = client.DeleteByQuery(request); 
     Assert.IsTrue(response.IsValid); 

किसी भी मदद के लिए धन्यवाद।

--------------- अद्यतन ---------------

अनुरोध शरीर

{"query":{"term":{"versionId":{"value":"ea8e517b-c2e3-4dfe-8e49-edc8bda67bad"}}}} 

रिस्पांस शरीर नब्ज प्लगइन में

{"took":0,"timed_out":false,"_indices":{"_all":{"found":0,"deleted":0,"missing":0,"failed":0}},"failures":[]} 

क्वेरी:

GET /my-index/type/_search 
{ 
    "query": { 

      "match": { 
      "versionId": "ea8e517b-c2e3-4dfe-8e49-edc8bda67bad" 
      } 

    } 
} 

क्वेरी प्रतिक्रिया:

{ 
    "took": 3, 
    "timed_out": false, 
    "_shards": { 
     "total": 5, 
     "successful": 5, 
     "failed": 0 
    }, 
    "hits": { 
     "total": 116, 
     "max_score": 2.1220484, 
     "hits": [] 
... 
}} 

--------------- घोंसला क्वेरी के --------------

DELETE http://localhost:9200/my-index/component/_query?pretty=true 
{ 
    "query": { 
    "term": { 
     "versionId": { 
     "value": "ea8e517b-c2e3-4dfe-8e49-edc8bda67bad" 
     } 
    } 
    } 
} 

Status: 200 
{ 
    "took" : 0, 
    "timed_out" : false, 
    "_indices" : { 
    "_all" : { 
     "found" : 0, 
     "deleted" : 0, 
     "missing" : 0, 
     "failed" : 0 
    } 
    }, 
    "failures" : [ ] 
} 
+0

एलैस्टिकसेर्च का कौन सा संस्करण आप लक्षित कर रहे हैं और आप किस एनईईटी का उपयोग कर रहे हैं? –

उत्तर

5

यह आप की तरह लगता है हो सकता है NEST 2.x के संयोजन के साथ Elasticsearch 2.x का उपयोग कर रहे हैं। Elasticsearch 2.0, Delete by query was moved out of Elasticsearch core and into a separate plugin के हिस्से के रूप में स्थापित करने की आवश्यकता है। आप प्लगइन Elasticsearch बिन निर्देशिका

bin/plugin install delete-by-query 

भीतर निम्न आदेश का उपयोग कर नोड प्रारंभ हो रहा है फिर से स्थापित, क्वेरी अब अपेक्षा के अनुरूप काम करना चाहिए द्वारा हटा सकते हैं।

यदि आपको कभी भी अनुरोध विफल होने के बारे में अधिक जानकारी प्राप्त करने की आवश्यकता है, तो आप अनुरोध के लिए ऑडिट ट्रेल प्राप्त करने के जवाब पर .DebugInformation का निरीक्षण कर सकते हैं।

+0

शानदार, मैं कोशिश करता हूं कि एक गुच्छा धन्यवाद। –

+0

Russ, प्लगइन स्थापित करने के बाद बस कोशिश की गई, अब प्रतिक्रिया। IValid सत्य है लेकिन डेटा हटाया नहीं गया है। –

+0

यह coz हो सकता है मैं सामान्य पैरामीटर वर्ग को छोड़कर, क्वेरी में प्रकार के नाम के बारे में स्पष्ट नहीं हूं। –

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