Adds OpenSearchBackend, the fifth vector backend, via OpenSearch k-NN with the lucene engine. Install with pip install ragleap-vectorstores[opensearch] or uv add ragleap-vectorstores[opensearch]. Live-verified against OpenSearch 3.8.0: the nmslib engine is rejected on OpenSearch 3.0+, and the cosinesimil score is (1 + cosine) / 2. The 16 new tests ran locally only (they skip in CI without OPENSEARCH_TEST_URL), and the published package was round-trip tested from a clean install. Known issue: the four older backends still call the deprecated datetime.utcnow(). See CHANGELOG.md for details.
CORRECTION (added after v0.5.1): this release's OpenSearchBackend used datetime.UTC, which only exists on Python 3.11+. Since this package declares support for Python 3.10, insert_document() raised AttributeError on Python 3.10 - reproduced with this published wheel. Python 3.11+ was never affected. Fixed in v0.5.1: https://github.com/antonyrag/ragleap-core/releases/tag/ragleap-vectorstores-v0.5.1 - upgrade if you're on Python 3.10.