Applied document lifecycle guide & sample. (#559)
Applied pull number to CHNAGELOG.md Signed-off-by: Djcarrillo6 <[email protected]>
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# The OpenSearch Contributors require contributions made to
|
||||
# this file be licensed under the Apache-2.0 license or a
|
||||
# compatible open source license.
|
||||
#
|
||||
# Modifications Copyright OpenSearch Contributors. See
|
||||
# GitHub history for details.
|
||||
|
||||
from opensearchpy import OpenSearch
|
||||
|
||||
# For cleaner output, comment in the two lines below to disable warnings and informational messages
|
||||
# import urllib3
|
||||
# urllib3.disable_warnings()
|
||||
|
||||
|
||||
# Connect to OpenSearch
|
||||
client = OpenSearch(
|
||||
hosts=["https://localhost:9200"],
|
||||
use_ssl=True,
|
||||
verify_certs=False,
|
||||
http_auth=("admin", "admin"),
|
||||
)
|
||||
|
||||
# Create an index
|
||||
index = "movies"
|
||||
if not client.indices.exists(index=index):
|
||||
client.indices.create(index=index)
|
||||
|
||||
# Create documents
|
||||
client.index(index=index, id=1, body={"title": "Beauty and the Beast", "year": 1991})
|
||||
client.index(
|
||||
index=index,
|
||||
id=2,
|
||||
body={"title": "Beauty and the Beast - Live Action", "year": 2017},
|
||||
)
|
||||
|
||||
# Index a document
|
||||
client.index(index=index, id=2, body={"title": "The Lion King", "year": 1994})
|
||||
|
||||
# Create a document with auto-generated ID
|
||||
result = client.index(index=index, body={"title": "The Lion King 2", "year": 1998})
|
||||
print(result)
|
||||
|
||||
# Get a document
|
||||
result = client.get(index=index, id=1)["_source"]
|
||||
print(result)
|
||||
|
||||
# Get a document with _source includes
|
||||
result = client.get(index=index, id=1, _source_includes=["title"])["_source"]
|
||||
print(result)
|
||||
|
||||
# Get a document with _source excludes
|
||||
result = client.get(index=index, id=1, _source_excludes=["title"])["_source"]
|
||||
print(result)
|
||||
|
||||
# Get multiple documents
|
||||
result = client.mget(index=index, body={"docs": [{"_id": 1}, {"_id": 2}]})["docs"]
|
||||
print(result)
|
||||
|
||||
# Check if a document exists
|
||||
result = client.exists(index=index, id=1)
|
||||
print(result)
|
||||
|
||||
# Update a document
|
||||
client.update(index=index, id=1, body={"doc": {"year": 1995}})
|
||||
|
||||
# Update a document using script
|
||||
client.update(index=index, id=1, body={"script": {"source": "ctx._source.year += 5"}})
|
||||
|
||||
# Update multiple documents by query
|
||||
client.update_by_query(
|
||||
index=index,
|
||||
body={
|
||||
"script": {"source": "ctx._source.year -= 1"},
|
||||
"query": {"range": {"year": {"gt": 2023}}},
|
||||
},
|
||||
)
|
||||
|
||||
# Delete a document
|
||||
client.delete(index=index, id=1)
|
||||
|
||||
# Delete a document with ignore 404
|
||||
client.delete(index=index, id=1, ignore=404)
|
||||
|
||||
# Delete multiple documents by query
|
||||
client.delete_by_query(index=index, body={"query": {"range": {"year": {"gt": 2023}}}})
|
||||
|
||||
# Delete the index
|
||||
client.indices.delete(index=index)
|
||||
print("Deleted index!")
|
||||
Reference in New Issue
Block a user