1313from haystack .document_stores .errors import DocumentStoreError , DuplicateDocumentError
1414from haystack .document_stores .types import DuplicatePolicy
1515from haystack .utils .auth import Secret
16+ from haystack .utils .misc import _normalize_metadata_field_name
1617from opensearchpy import AsyncHttpConnection , AsyncOpenSearch , OpenSearch
1718from opensearchpy .helpers import async_bulk , bulk
1819
@@ -1659,7 +1660,7 @@ def count_unique_metadata_by_filter(self, filters: dict[str, Any], metadata_fiel
16591660 index_mapping = mapping [self ._index ]["mappings" ]["properties" ]
16601661
16611662 # normalize field names
1662- normalized_metadata_fields = [self . _normalize_metadata_field_name (field ) for field in metadata_fields ]
1663+ normalized_metadata_fields = [_normalize_metadata_field_name (field ) for field in metadata_fields ]
16631664 # validate that all requested fields exist in the index mapping
16641665 missing_fields = [f for f in normalized_metadata_fields if f not in index_mapping ]
16651666 if missing_fields :
@@ -1703,7 +1704,7 @@ async def count_unique_metadata_by_filter_async(
17031704 index_mapping = mapping [self ._index ]["mappings" ]["properties" ]
17041705
17051706 # normalize field names
1706- normalized_metadata_fields = [self . _normalize_metadata_field_name (field ) for field in metadata_fields ]
1707+ normalized_metadata_fields = [_normalize_metadata_field_name (field ) for field in metadata_fields ]
17071708 # validate that all requested fields exist in the index mapping
17081709 missing_fields = [f for f in normalized_metadata_fields if f not in index_mapping ]
17091710 if missing_fields :
@@ -1790,13 +1791,6 @@ async def get_metadata_fields_info_async(self) -> dict[str, dict[str, str]]:
17901791 index_mapping = {k : v for k , v in index_mapping .items () if k not in SPECIAL_FIELDS }
17911792 return index_mapping
17921793
1793- @staticmethod
1794- def _normalize_metadata_field_name (metadata_field : str ) -> str :
1795- """
1796- Normalizes a metadata field name by removing the "meta." prefix if present.
1797- """
1798- return metadata_field [5 :] if metadata_field .startswith ("meta." ) else metadata_field
1799-
18001794 @staticmethod
18011795 def _build_min_max_query_body (field_name : str ) -> dict [str , Any ]:
18021796 """
@@ -1834,7 +1828,7 @@ def get_metadata_field_min_max(self, metadata_field: str) -> dict[str, int | Non
18341828 self ._ensure_initialized ()
18351829 assert self ._client is not None
18361830
1837- field_name = self . _normalize_metadata_field_name (metadata_field )
1831+ field_name = _normalize_metadata_field_name (metadata_field )
18381832 body = self ._build_min_max_query_body (field_name )
18391833 result = self ._client .search (index = self ._index , body = body )
18401834 stats = result .get ("aggregations" , {}).get ("field_stats" , {})
@@ -1852,7 +1846,7 @@ async def get_metadata_field_min_max_async(self, metadata_field: str) -> dict[st
18521846 await self ._ensure_initialized_async ()
18531847 assert self ._async_client is not None
18541848
1855- field_name = self . _normalize_metadata_field_name (metadata_field )
1849+ field_name = _normalize_metadata_field_name (metadata_field )
18561850 body = self ._build_min_max_query_body (field_name )
18571851 result = await self ._async_client .search (index = self ._index , body = body )
18581852 stats = result .get ("aggregations" , {}).get ("field_stats" , {})
@@ -1882,7 +1876,7 @@ def get_metadata_field_unique_values(
18821876 self ._ensure_initialized ()
18831877 assert self ._client is not None
18841878
1885- field_name = self . _normalize_metadata_field_name (metadata_field )
1879+ field_name = _normalize_metadata_field_name (metadata_field )
18861880
18871881 # filter by search_term if provided
18881882 query : dict [str , Any ] = {"match_all" : {}}
@@ -1947,7 +1941,7 @@ async def get_metadata_field_unique_values_async(
19471941 await self ._ensure_initialized_async ()
19481942 assert self ._async_client is not None
19491943
1950- field_name = self . _normalize_metadata_field_name (metadata_field )
1944+ field_name = _normalize_metadata_field_name (metadata_field )
19511945
19521946 # filter by search_term if provided
19531947 query : dict [str , Any ] = {"match_all" : {}}
0 commit comments