Expanded type coverage to benchmarks, samples and tests. (#566)
* Renamed json samples to fix duplicate module name. Signed-off-by: dblock <[email protected]> * Enabled mypy on all source files. Signed-off-by: dblock <[email protected]> * Added missing types. Signed-off-by: dblock <[email protected]> * Added CHANGELOG. Signed-off-by: dblock <[email protected]> * Move type: ignore to fix untyped decorator makes function untyped. Signed-off-by: dblock <[email protected]> * Fix nox -rs lint-3.7. Signed-off-by: dblock <[email protected]> * Fixed incorrect import. Signed-off-by: dblock <[email protected]> * Fix broken test. Signed-off-by: dblock <[email protected]> * Fixed TestBulk::test_bulk_works_with_bytestring_body. Signed-off-by: dblock <[email protected]> --------- Signed-off-by: dblock <[email protected]>
This commit is contained in:
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/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.
|
||||
|
||||
|
||||
import asyncio
|
||||
|
||||
from opensearchpy import AsyncOpenSearch
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
# connect to OpenSearch
|
||||
host = "localhost"
|
||||
port = 9200
|
||||
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,
|
||||
)
|
||||
|
||||
try:
|
||||
info = await client.transport.perform_request("GET", "/")
|
||||
print(
|
||||
f"Welcome to {info['version']['distribution']} {info['version']['number']}!"
|
||||
)
|
||||
|
||||
# create an index
|
||||
|
||||
index_name = "movies"
|
||||
|
||||
index_body = {"settings": {"index": {"number_of_shards": 4}}}
|
||||
|
||||
print(
|
||||
await client.transport.perform_request(
|
||||
"PUT", f"/{index_name}", body=index_body
|
||||
)
|
||||
)
|
||||
|
||||
# add a document to the index
|
||||
|
||||
document = {"title": "Moneyball", "director": "Bennett Miller", "year": "2011"}
|
||||
|
||||
id = "1"
|
||||
|
||||
print(
|
||||
await client.transport.perform_request(
|
||||
"PUT", f"/{index_name}/_doc/{id}?refresh=true", body=document
|
||||
)
|
||||
)
|
||||
|
||||
# search for a document
|
||||
|
||||
q = "miller"
|
||||
|
||||
query = {
|
||||
"size": 5,
|
||||
"query": {"multi_match": {"query": q, "fields": ["title^2", "director"]}},
|
||||
}
|
||||
|
||||
print(
|
||||
await client.transport.perform_request(
|
||||
"POST", f"/{index_name}/_search", body=query
|
||||
)
|
||||
)
|
||||
|
||||
# delete the document
|
||||
|
||||
print(
|
||||
await client.transport.perform_request("DELETE", f"/{index_name}/_doc/{id}")
|
||||
)
|
||||
|
||||
# delete the index
|
||||
|
||||
print(await client.transport.perform_request("DELETE", f"/{index_name}"))
|
||||
|
||||
finally:
|
||||
await client.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
loop.run_until_complete(main())
|
||||
loop.close()
|
||||
Reference in New Issue
Block a user