llama-index-vector-stores-opensearch 0.1.12__tar.gz → 0.1.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of llama-index-vector-stores-opensearch might be problematic. Click here for more details.
- {llama_index_vector_stores_opensearch-0.1.12 → llama_index_vector_stores_opensearch-0.1.13}/PKG-INFO +1 -1
- {llama_index_vector_stores_opensearch-0.1.12 → llama_index_vector_stores_opensearch-0.1.13}/llama_index/vector_stores/opensearch/base.py +77 -1
- {llama_index_vector_stores_opensearch-0.1.12 → llama_index_vector_stores_opensearch-0.1.13}/pyproject.toml +1 -1
- {llama_index_vector_stores_opensearch-0.1.12 → llama_index_vector_stores_opensearch-0.1.13}/README.md +0 -0
- {llama_index_vector_stores_opensearch-0.1.12 → llama_index_vector_stores_opensearch-0.1.13}/llama_index/vector_stores/opensearch/__init__.py +0 -0
|
@@ -214,7 +214,10 @@ class OpensearchVectorClient:
|
|
|
214
214
|
pre_filter = []
|
|
215
215
|
if filters is not None:
|
|
216
216
|
for f in filters.legacy_filters():
|
|
217
|
-
|
|
217
|
+
if isinstance(f.value, str):
|
|
218
|
+
pre_filter.append({f.key: f.value})
|
|
219
|
+
else:
|
|
220
|
+
pre_filter.append({f.key: json.loads(str(f.value))})
|
|
218
221
|
|
|
219
222
|
return pre_filter
|
|
220
223
|
|
|
@@ -389,6 +392,41 @@ class OpensearchVectorClient:
|
|
|
389
392
|
}
|
|
390
393
|
await self._os_client.delete_by_query(index=self._index, body=search_query)
|
|
391
394
|
|
|
395
|
+
async def delete_nodes(
|
|
396
|
+
self,
|
|
397
|
+
node_ids: Optional[List[str]] = None,
|
|
398
|
+
filters: Optional[MetadataFilters] = None,
|
|
399
|
+
**delete_kwargs: Any,
|
|
400
|
+
) -> None:
|
|
401
|
+
"""Deletes nodes.
|
|
402
|
+
|
|
403
|
+
Args:
|
|
404
|
+
node_ids (Optional[List[str]], optional): IDs of nodes to delete. Defaults to None.
|
|
405
|
+
filters (Optional[MetadataFilters], optional): Metadata filters. Defaults to None.
|
|
406
|
+
"""
|
|
407
|
+
if not node_ids and not filters:
|
|
408
|
+
return
|
|
409
|
+
|
|
410
|
+
query = {"query": {"bool": {"filter": []}}}
|
|
411
|
+
if node_ids:
|
|
412
|
+
query["query"]["bool"]["filter"].append({"terms": {"_id": node_ids or []}})
|
|
413
|
+
|
|
414
|
+
if filters:
|
|
415
|
+
for filter in self._parse_filters(filters):
|
|
416
|
+
newfilter = {}
|
|
417
|
+
|
|
418
|
+
for key in filter:
|
|
419
|
+
newfilter[f"metadata.{key}.keyword"] = filter[key]
|
|
420
|
+
|
|
421
|
+
query["query"]["bool"]["filter"].append({"term": newfilter})
|
|
422
|
+
|
|
423
|
+
await self._os_client.delete_by_query(index=self._index, body=query)
|
|
424
|
+
|
|
425
|
+
async def clear(self) -> None:
|
|
426
|
+
"""Clears index."""
|
|
427
|
+
query = {"query": {"bool": {"filter": []}}}
|
|
428
|
+
await self._os_client.delete_by_query(index=self._index, body=query)
|
|
429
|
+
|
|
392
430
|
async def aquery(
|
|
393
431
|
self,
|
|
394
432
|
query_mode: VectorStoreQueryMode,
|
|
@@ -574,6 +612,44 @@ class OpensearchVectorStore(BasePydanticVectorStore):
|
|
|
574
612
|
"""
|
|
575
613
|
await self._client.delete_by_doc_id(ref_doc_id)
|
|
576
614
|
|
|
615
|
+
async def adelete_nodes(
|
|
616
|
+
self,
|
|
617
|
+
node_ids: Optional[List[str]] = None,
|
|
618
|
+
filters: Optional[MetadataFilters] = None,
|
|
619
|
+
**delete_kwargs: Any,
|
|
620
|
+
) -> None:
|
|
621
|
+
"""Deletes nodes async.
|
|
622
|
+
|
|
623
|
+
Args:
|
|
624
|
+
node_ids (Optional[List[str]], optional): IDs of nodes to delete. Defaults to None.
|
|
625
|
+
filters (Optional[MetadataFilters], optional): Metadata filters. Defaults to None.
|
|
626
|
+
"""
|
|
627
|
+
await self._client.delete_nodes(node_ids, filters, **delete_kwargs)
|
|
628
|
+
|
|
629
|
+
def delete_nodes(
|
|
630
|
+
self,
|
|
631
|
+
node_ids: Optional[List[str]] = None,
|
|
632
|
+
filters: Optional[MetadataFilters] = None,
|
|
633
|
+
**delete_kwargs: Any,
|
|
634
|
+
) -> None:
|
|
635
|
+
"""Deletes nodes.
|
|
636
|
+
|
|
637
|
+
Args:
|
|
638
|
+
node_ids (Optional[List[str]], optional): IDs of nodes to delete. Defaults to None.
|
|
639
|
+
filters (Optional[MetadataFilters], optional): Metadata filters. Defaults to None.
|
|
640
|
+
"""
|
|
641
|
+
asyncio.get_event_loop().run_until_complete(
|
|
642
|
+
self.adelete_nodes(node_ids, filters, **delete_kwargs)
|
|
643
|
+
)
|
|
644
|
+
|
|
645
|
+
async def aclear(self) -> None:
|
|
646
|
+
"""Clears index."""
|
|
647
|
+
await self._client.clear()
|
|
648
|
+
|
|
649
|
+
def clear(self) -> None:
|
|
650
|
+
"""Clears index."""
|
|
651
|
+
asyncio.get_event_loop().run_until_complete(self.aclear())
|
|
652
|
+
|
|
577
653
|
def query(self, query: VectorStoreQuery, **kwargs: Any) -> VectorStoreQueryResult:
|
|
578
654
|
"""
|
|
579
655
|
Query index for top k most similar nodes.
|
|
File without changes
|