import time
from moorcheh import MoorchehClient, MoorchehApiError
with MoorchehClient("http://localhost:8080") as client:
# 1. Check quota
health = client.health()
print(f"Items: {health['items']} / {health['max_items']}")
# 2. Create a text namespace
try:
client.namespaces.create("docs", type="text")
except MoorchehApiError as e:
if e.status_code != 409: # 409 = namespace already exists
raise
# 3. Upload documents (async job)
resp = client.documents.upload("docs", documents=[
{"id": "doc-1", "text": "Hello Moorcheh", "team": "ai"},
])
# 4. Poll until upload completes
job_id = resp["job_id"]
while True:
job = client.documents.upload_job_status("docs", job_id)
if job["status"] == "completed":
if job["failed"]:
print("Upload errors:", job.get("last_error"))
break
time.sleep(0.5)
# 5. Search (use #team:ai in query for metadata filter)
hits = client.similarity_search.query(
namespaces=["docs"],
query="hello moorcheh #team:ai",
top_k=5,
)
for r in hits["results"]:
print(r["id"], r["score"], r["label"], r.get("text"))