Added samples, benchmarks and docs for nox format. (#556)

* Added samples for nox format.

Signed-off-by: dblock <[email protected]>

* Added space after #!/usr/bin/env python.

Signed-off-by: dblock <[email protected]>

* Added benchmarks and docs.

Signed-off-by: dblock <[email protected]>

---------

Signed-off-by: dblock <[email protected]>
This commit is contained in:
Daniel (dB.) Doubrovkine
2023-10-26 19:55:50 -07:00
committed by GitHub
parent 0da60b2623
commit bcfef113c4
28 changed files with 745 additions and 726 deletions
+59 -71
View File
@@ -6,103 +6,91 @@
# 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.
import asyncio
from opensearchpy import AsyncOpenSearch
async def main():
# connect to OpenSearch
host = 'localhost'
host = "localhost"
port = 9200
auth = ('admin', 'admin') # For testing only. Don't store credentials in code.
auth = ("admin", "admin") # For testing only. Don't store credentials in code.
client = AsyncOpenSearch(
hosts = [{'host': host, 'port': port}],
http_auth = auth,
use_ssl = True,
verify_certs = False,
ssl_show_warn = False
hosts=[{"host": host, "port": port}],
http_auth=auth,
use_ssl=True,
verify_certs=False,
ssl_show_warn=False,
)
try:
info = await client.info()
print(f"Welcome to {info['version']['distribution']} {info['version']['number']}!")
# create an index
index_name = 'test-index'
index_body = {
'settings': {
'index': {
'number_of_shards': 4
}
}
}
if not await client.indices.exists(index=index_name):
await client.indices.create(
index_name,
body=index_body
info = await client.info()
print(
f"Welcome to {info['version']['distribution']} {info['version']['number']}!"
)
# add some documents to the index, asynchronously
await asyncio.gather(*[
client.index(
index = index_name,
body = {
'title': f"Moneyball {i}",
'director': 'Bennett Miller',
'year': '2011'
},
id = i
) for i in range(10)
])
# create an index
# refresh the index
await client.indices.refresh(index=index_name)
index_name = "test-index"
# search for a document
q = 'miller'
index_body = {"settings": {"index": {"number_of_shards": 4}}}
query = {
'size': 5,
'query': {
'multi_match': {
'query': q,
'fields': ['title^2', 'director']
}
if not await client.indices.exists(index=index_name):
await client.indices.create(index_name, body=index_body)
# add some documents to the index, asynchronously
await asyncio.gather(
*[
client.index(
index=index_name,
body={
"title": f"Moneyball {i}",
"director": "Bennett Miller",
"year": "2011",
},
id=i,
)
for i in range(10)
]
)
# refresh the index
await client.indices.refresh(index=index_name)
# search for a document
q = "miller"
query = {
"size": 5,
"query": {"multi_match": {"query": q, "fields": ["title^2", "director"]}},
}
}
results = await client.search(
body = query,
index = index_name
)
results = await client.search(body=query, index=index_name)
for hit in results["hits"]["hits"]:
print(hit)
# delete the documents
await asyncio.gather(*[
client.delete(
index = index_name,
id = i
) for i in range(10)
])
for hit in results["hits"]["hits"]:
print(hit)
# delete the index
await client.indices.delete(
index = index_name
)
# delete the documents
await asyncio.gather(
*[client.delete(index=index_name, id=i) for i in range(10)]
)
# delete the index
await client.indices.delete(index=index_name)
finally:
await client.close()
finally:
await client.close()
if __name__ == "__main__":
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(main())
loop.close()
+23 -50
View File
@@ -6,21 +6,25 @@
# 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
# connect to OpenSearch
host = 'localhost'
host = "localhost"
port = 9200
auth = ('admin', 'admin') # For testing only. Don't store credentials in code.
auth = ("admin", "admin") # For testing only. Don't store credentials in code.
client = OpenSearch(
hosts = [{'host': host, 'port': port}],
http_auth = auth,
use_ssl = True,
verify_certs = False,
ssl_show_warn = False
hosts=[{"host": host, "port": port}],
http_auth=auth,
use_ssl=True,
verify_certs=False,
ssl_show_warn=False,
)
info = client.info()
@@ -28,76 +32,45 @@ print(f"Welcome to {info['version']['distribution']} {info['version']['number']}
# create an index
index_name = 'test-index'
index_name = "test-index"
index_body = {
'settings': {
'index': {
'number_of_shards': 4
}
}
}
index_body = {"settings": {"index": {"number_of_shards": 4}}}
response = client.indices.create(
index_name,
body=index_body
)
response = client.indices.create(index_name, body=index_body)
print(response)
# add a document to the index
document = {
'title': 'Moneyball',
'director': 'Bennett Miller',
'year': '2011'
}
document = {"title": "Moneyball", "director": "Bennett Miller", "year": "2011"}
id = '1'
id = "1"
response = client.index(
index = index_name,
body = document,
id = id,
refresh = True
)
response = client.index(index=index_name, body=document, id=id, refresh=True)
print(response)
# search for a document
q = 'miller'
q = "miller"
query = {
'size': 5,
'query': {
'multi_match': {
'query': q,
'fields': ['title^2', 'director']
}
}
"size": 5,
"query": {"multi_match": {"query": q, "fields": ["title^2", "director"]}},
}
response = client.search(
body = query,
index = index_name
)
response = client.search(body=query, index=index_name)
print(response)
# delete the document
response = client.delete(
index = index_name,
id = id
)
response = client.delete(index=index_name, id=id)
print(response)
# delete the index
response = client.indices.delete(
index = index_name
)
response = client.indices.delete(index=index_name)
print(response)