diff --git a/Default.sublime-commands b/Default.sublime-commands index 53bb0ce..3d15891 100644 --- a/Default.sublime-commands +++ b/Default.sublime-commands @@ -15,6 +15,7 @@ {"command": "elasticsearch_delete_document", "caption": "Elasticsearch: Delete Document"}, {"command": "elasticsearch_get_document", "caption": "Elasticsearch: Get Document"}, {"command": "elasticsearch_index_document", "caption": "Elasticsearch: Index Document"}, + {"command": "elasticsearch_update_document", "caption": "Elasticsearch: Update Document"}, {"command": "elasticsearch_analyze", "caption": "Elasticsearch: Analyze"}, {"command": "elasticsearch_create_index", "caption": "Elasticsearch: Create Index"}, diff --git a/README.md b/README.md index 1e9eacb..c5ac6e7 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ Setting | Description ``enabled_delete_document`` | if set ``true`` you can delete document. default: ``false`` ``enabled_delete_index`` | if set ``true`` you can delete index. default: ``false`` ``enabled_index_document`` | if set ``true`` you can index document. default: ``false`` +``enabled_update_document`` | if set ``true`` you can update document. default: ``false`` ``enabled_put_mapping`` | if set ``true`` you can put mapping. default: ``false`` ``enabled_register_query`` | if set ``true`` you can register query for percolator. default: ``false`` ``enabled_delete_percolator`` | if set ``true`` you can delete registerd query for percolator. default: ``false`` diff --git a/elasticsearch.py b/elasticsearch.py index 386845e..eebe47f 100644 --- a/elasticsearch.py +++ b/elasticsearch.py @@ -166,6 +166,11 @@ def enabled_index_document(self, quiet=False): self.server_settings.get('enabled_index_document', False), quiet) + def enabled_update_document(self, quiet=False): + return self.command_status_message( + self.server_settings.get('enabled_update_document', False), + quiet) + def enabled_register_query(self, quiet=False): return self.command_status_message( self.server_settings.get('enabled_register_query', False), @@ -286,6 +291,7 @@ def show_active_server_settings(self): "\n[ Document APIs ]\n" "- enabled_delete_document : {enabled_delete_document}\n" "- enabled_index_document : {enabled_index_document}\n" + "- enabled_update_document : {enabled_update_document}\n" "\n[ Search APIs ]\n" "- enabled_delete_percolator : {enabled_delete_percolator}\n" "- enabled_register_query : {enabled_register_query}\n" @@ -306,7 +312,8 @@ def show_active_server_settings(self): enabled_put_warmer=self.enabled_put_warmer(quiet=True), enabled_delete_warmer=self.enabled_delete_warmer(quiet=True), enabled_add_alias=self.enabled_add_alias(quiet=True), - enabled_delete_alias=self.enabled_delete_alias(quiet=True) + enabled_delete_alias=self.enabled_delete_alias(quiet=True), + enabled_update_index=self.enabled_update_index(quiet=True) ) ) @@ -454,6 +461,20 @@ def on_done(self, document_id): self.request_post(path, body=body, params=DEFAULT_PARAMS) +class ElasticsearchUpdateDocumentCommand(ReusltJsonCommand): + + def run(self): + if self.enabled_update_document(): + self.get_document_id(self.on_done) + + def on_done(self, document_id): + if not document_id: + return + path = make_path(self.index, self.doc_type, document_id, '_update') + body = self.get_selection() + self.request_post(path, body=body, params=DEFAULT_PARAMS) + + # --------------------------------------------------------------------- # Indices APIs # ---------------------------------------------------------------------