Feature compatible only with Saga 1.3+ responses
PyQPL allows you to work with responses from Saga, enabling you to convert LexItems into synonyms, QPL keywords, and more complex query structures. By leveraging the capabilities of Saga, including the ability to maintain, configure, and tune dictionaries for entity extraction, PyQPL with Saga provides a powerful tool for creating queries with mutable syntax and enhanced capabilities.
Field | Type | Required | Default | Description | Examples |
---|---|---|---|---|---|
implicit_operator | Literal['or', 'and'] | or | Default operator to use when the relationship, between 2 operands is ambiguous Applicable only to the parser | "or", "and" | |
fields | List[str] OR Dict[str, float] OR List[QPLField] OR str | Fields to be use when match term, phrases, spans, ... In the string formats you can add the boots by adding ^ and the amount to boots, e.g. ^2 or ^0.5 | As string:
As a List:
As a Dictionary:
as a List of QPLFields:
| ||
date_fields | List[str] OR Dict[str, float] OR List[QPLField] OR str | [ ] | Fields to be use when date ranges, if no range queries are In the string formats you can add the boots by adding ^ and the amount to boots, e.g. ^2 or ^0.5 | As string:
As a List:
As a Dictionary:
as a List of QPLFields:
| |
range_fields | List[str] OR Dict[str, float] OR List[QPLField] OR str | [ ] | Fields to be use when ranges In the string formats you can add the boots by adding ^ and the amount to boots, e.g. ^2 or ^0.5 | As string:
As a List:
As a Dictionary:
as a List of QPLFields:
| |
date_format | str | Date format used to convert date values in the query. The format to use must be compatible with the engine specific query | |||
timezone | str | Coordinated Universal Time (UTC) offset or IANA time zone used to convert date values in the query to UTC. The timezone to use must be compatible with the engine specific query | |||
slop_near | number | 10 | Slop value used for the NEAR operator | ||
slop_before | number | 2 | Slop value used for the BEFORE operator | ||
slop_adj | number | 0 | Slop value used for the ADJ operator | ||
slop_span_not | number | 0 | Slop value used for the SPAN NOT operator | ||
wildcard | bool | False | Use wildcard operators Applicable only to the parser | ||
grammar | File Path Or str | File path to the grammar or the actual raw grammar in string, in case you need to parse text to QPL with custom operators. QPL parser uses a Lalr parser implemented with Lark library, for more information check https://lark-parser.readthedocs.io/en/latest/grammar.html# We recommend that before starting to make a new grammar, consult with the development team Applicable only to the parser | For more detail on how to build a grammar please check Grammar Composition from the Lark documentation | ||
custom_operators | Dict[str, Operand] | {} | Dictionary with the name type of the custom operator as keys, and the class with their logic as values. All classes must inherit from Operator Applicable only to the parser | A more detailed use of the custom operators can be found on Custom Operator page | |
synonyms_call | Func[] | Function returning requested synonyms for the specified string Applicable only to the parser | A more detailed use of the synonym expansion can be found on Synonym Expansion page | ||
saga_keywords | List[str] | [] | Saga tags to be normalize as QPL keywords. The display of the tag will use to replace the tag. | ||
saga_synonyms | List[str] | [] | Saga tags marked as synonyms, For each entity in the matched tag, the list of patterns within the entity, will be used as the synonyms to replace the matched text. | ||
saga_synonyms_boost | float | 0.8 | Boots to be used on each synonym added to the query. | ||
saga_special_case | Dict[str, Callable[LexItem, str] | {} | Dictionary with tags as per keys, where each key has a function assigned, which will receive a LexItem and transformed it into a suitable query statement. |
Keyword Replacement
The keyword replacement