Added opensearch queries
This commit is contained in:
parent
1458de9135
commit
eef9e380dc
1 changed files with 55 additions and 0 deletions
55
src/utils/opensearch_queries.py
Normal file
55
src/utils/opensearch_queries.py
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
"""
|
||||
Utility functions for constructing OpenSearch queries consistently.
|
||||
"""
|
||||
from typing import Union, List
|
||||
|
||||
|
||||
def build_filename_query(filename: str) -> dict:
|
||||
"""
|
||||
Build a standardized query for finding documents by filename.
|
||||
|
||||
Args:
|
||||
filename: The exact filename to search for
|
||||
|
||||
Returns:
|
||||
A dict containing the OpenSearch query body
|
||||
"""
|
||||
return {
|
||||
"term": {
|
||||
"filename": filename
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def build_filename_search_body(filename: str, size: int = 1, source: Union[bool, List[str]] = False) -> dict:
|
||||
"""
|
||||
Build a complete search body for checking if a filename exists.
|
||||
|
||||
Args:
|
||||
filename: The exact filename to search for
|
||||
size: Number of results to return (default: 1)
|
||||
source: Whether to include source fields, or list of specific fields to include (default: False)
|
||||
|
||||
Returns:
|
||||
A dict containing the complete OpenSearch search body
|
||||
"""
|
||||
return {
|
||||
"query": build_filename_query(filename),
|
||||
"size": size,
|
||||
"_source": source
|
||||
}
|
||||
|
||||
|
||||
def build_filename_delete_body(filename: str) -> dict:
|
||||
"""
|
||||
Build a delete-by-query body for removing all documents with a filename.
|
||||
|
||||
Args:
|
||||
filename: The exact filename to delete
|
||||
|
||||
Returns:
|
||||
A dict containing the OpenSearch delete-by-query body
|
||||
"""
|
||||
return {
|
||||
"query": build_filename_query(filename)
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue