search_query.ebsco package
Submodules
search_query.ebsco.constants module
Constants for EBSCO.
- search_query.ebsco.constants.generic_search_field_to_syntax_field(generic_search_field: str) str
Convert a set of generic search fields to a set of syntax strings.
- search_query.ebsco.constants.map_to_standard(syntax_str: str) str
Map a syntax string to a standard syntax string.
- search_query.ebsco.constants.syntax_str_to_generic_search_field_set(field_value: str) set
Translate a search field
search_query.ebsco.linter module
Validator for search queries.
- class search_query.ebsco.linter.EBSCOQueryStringLinter(query_str: str = '')
Bases:
QueryStringLinter
Linter for EBSCO Query Strings
- UNSUPPORTED_SEARCH_FIELD_REGEX = '\\b(?!OR\\b)\\b(?!S\\d+\\b)[A-Z]{2}\\b'
- VALID_FIELDS_REGEX: re.Pattern = re.compile('TI|AB|TP|TX|AU|SU|SO|IS|IB|LA|KW|DE|MH|ZY|ZU', re.IGNORECASE)
- VALID_TOKEN_SEQUENCES = {TokenTypes.FIELD: [TokenTypes.SEARCH_TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.LOGIC_OPERATOR: [TokenTypes.SEARCH_TERM, TokenTypes.FIELD, TokenTypes.PARENTHESIS_OPEN], TokenTypes.PARENTHESIS_CLOSED: [TokenTypes.PARENTHESIS_CLOSED, TokenTypes.LOGIC_OPERATOR, TokenTypes.PROXIMITY_OPERATOR], TokenTypes.PARENTHESIS_OPEN: [TokenTypes.FIELD, TokenTypes.SEARCH_TERM, TokenTypes.PARENTHESIS_OPEN], TokenTypes.PROXIMITY_OPERATOR: [TokenTypes.SEARCH_TERM, TokenTypes.PARENTHESIS_OPEN, TokenTypes.FIELD], TokenTypes.SEARCH_TERM: [TokenTypes.LOGIC_OPERATOR, TokenTypes.PROXIMITY_OPERATOR, TokenTypes.PARENTHESIS_CLOSED]}
- check_invalid_near_within_operators() None
Check for invalid NEAR and WITHIN operators in the query. EBSCO does not support NEAR and WITHIN operators.
- check_invalid_near_within_operators_query(query: Query) None
Check for invalid NEAR and WITHIN operators in the query. EBSCO does not support NEAR and WITHIN operators.
- check_invalid_syntax() None
Check for invalid syntax in the query string.
- check_invalid_token_sequences() None
Check for invalid token sequences based on token type and the previous token type.
- check_search_field_general() None
Check field ‘Search Fields’ in content.
- check_unsupported_wildcards(query: Query) None
Check for unsupported characters in the search string.
- get_precedence(token: str) int
Returns operator precedence for logical and proximity operators.
- messages: List[dict]
- syntax_str_to_generic_search_field_set(field_value: str) set
Translate a search field
search_query.ebsco.parser module
EBSCO query parser.
- class search_query.ebsco.parser.EBSCOParser(query_str: str, *, search_field_general: str = '', mode: str = 'strict')
Bases:
QueryStringParser
Parser for EBSCO queries.
- LOGIC_OPERATOR_REGEX = re.compile('\\b(AND|OR|NOT)\\b', re.IGNORECASE)
- OPERATOR_REGEX: re.Pattern = re.compile('\\b(AND|OR|NOT)\\b|(N|W)\\d+|(NEAR|WITHIN)/\\d+')
- PARENTHESIS_REGEX = re.compile('[\\(\\)]')
- PROXIMITY_OPERATOR_REGEX = re.compile('(N|W)\\d+|(NEAR|WITHIN)/\\d+', re.IGNORECASE)
- SEARCH_FIELD_REGEX = re.compile('\\b([A-Z]{2})\\b')
- SEARCH_TERM_REGEX = re.compile('\\"[^\\"]*\\"|\\*?\\b[^()\\s]+')
- append_node(parent: Query | None, current_operator: Query | None, node: Query) tuple[Query | None, Query | None]
Append new Query node
- append_operator(parent: Query | None, operator_node: Query) tuple[Query, Query]
Append new Operator node
- combine_subsequent_tokens() None
Combine subsequent tokens based on specific conditions.
- fix_ambiguous_tokens() None
Fix ambiguous tokens that could be misinterpreted as a search field.
- linter: QueryStringLinter
- parse_query_tree(tokens: list | None = None, field_context: SearchField | None = None) Query
Build a query tree from a list of tokens with dynamic restructuring based on PRECEDENCE.
- pattern = re.compile('[\\(\\)]|\\b(AND|OR|NOT)\\b|(N|W)\\d+|(NEAR|WITHIN)/\\d+|\\b([A-Z]{2})\\b|\\"[^\\"]*\\"|\\*?\\b[^()\\s]+')
- tokenize() None
Tokenize the query_str.
- tokens: list
search_query.ebsco.serializer module
EBSCO serializer
search_query.ebsco.translator module
EBSCO query translator.
- class search_query.ebsco.translator.EBSCOTranslator
Bases:
QueryTranslator
Translator for EBSCO queries.
Module contents
Top-level package for EBSCOHost.