2016-05-04 3 views
1

ich ein neues Feld eingefügt haben wiki_collection und seinen Wert auf true in meinem Dokument mit:Wie lösche ich ein Feld in elasticsearch 2.3.0? Ich verwende Sinn meine Fragen zu tun

POST /pibtest1/_update_by_query 
{ 
    "script": { 
    "inline": "ctx._source.wiki_collection=true" 
    }, 
    "query": { 
    "match": { 
     "url":"http%3A%2F%2Fwww.searchtechnologies.com%2Fbundles%2Fmodernizr%3Fv%3D7-yR01kdRVQ7W1RQzMBVKYLDhCt0itEATWHixfzE8Os1" 
    } 
    } 
} 

Aber jetzt will ich dieses Feld löschen. Ich versuche, dies zu tun:

POST /pibtest1/_update 
{ 
    "script" : "ctx._source.remove(\"wiki_collection\")" 
} 

Aber ich erhalte eine Fehlermeldung, die besagt:

{ 
    "error": { 
     "root_cause": [ 
     { 
      "type": "invalid_type_name_exception", 
      "reason": "Document mapping type name can't start with '_'" 
     } 
     ], 
     "type": "invalid_type_name_exception", 
     "reason": "Document mapping type name can't start with '_'" 
    }, 
    "status": 400 
} 

Gibt es einen anderen Weg, um ein Feld in Elasticsearch löschen?

Edit: Ich habe durch Abfrage aktualisiert:

POST /pibtest1/_update_by_query 
{ 
    "script": { 
    "inline": "ctx._source.remove(\"wiki_collection\")" 
    }, 
    "query": { 
    "match": { 
     "url": "http://www.searchtechnologies.com/bundles/modernizr?v=7-yR01kdRVQ7W1RQzMBVKYLDhCt0itEATWHixfzE8Os1" 
    } 
    } 
} 

Aber jetzt eine neue namens gefeilt „entfernen =‚wiki_collection‘“ in meinen Dokumenten, die wie folgt aussieht Ich erhalte: http://i.stack.imgur.com/QvxIa.png Ich möchte entfernen/lösche dieses wiki_collection-Feld aus meinen Dokumenten.

Antwort

2

Ihr Update ist falsch. Es sollte entweder (Sie vollständigen Pfad angeben - index/Typ/ID):

POST /pibtest1/test/234/_update 
{ 
    "script": { 
    "inline": "ctx._source.remove(\"wiki_collection\")" 
    } 
} 

Oder verwenden Sie die gleiche _update_by_query:

POST /pibtest1/_update_by_query 
{ 
    "script": { 
    "inline": "ctx._source.remove(\"wiki_collection\")" 
    }, 
    "query": { 
    "match": { 
     "url": "whatever" 
    } 
    } 
} 
+1

Bitte meine aktualisiert Post überprüfen. Ich folgte deiner zweiten Lösung. Aber jetzt bekomme ich ein neues Feld namens remove = 'wiki_collection' in meinen Dokumenten. Ich möchte dieses Feld aus meinem Dokument löschen. – Rose

+0

Wie führen Sie die REST-Befehle aus? Sense, Curl, etwas anderes? –

+0

Ich verwende SENSE, um meine Abfragen auszuführen – Rose

Verwandte Themen