QPL Option is the object which will decided the behaviour of our QPL query, from the default operator to the Saga coupling and the synonym injection

QPLOptions

FieldTypeRequiredDefaultDescriptionExamples

implicit_operator

Literal['or', 'and'](error)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

(tick)



Fields to be used when match term, phrases, spans, ...


In the string formats you can add the boost by adding ^ and the boost factor, e.g. ^2 or ^0.5

As string:

"field"

As a List:

["field1", "field2^2", "field3^3"]

As a Dictionary:

{"field1": 1, "field2" : 2, "field3": 3.0}

as a List of QPLFields:

[{"name":"field1", "boost": 1}, {"name":"field2", "boost": 2}, {"name":"field3", "boost": 3}]

date_fields

List[str] OR Dict[str, float]

OR List[QPLField] OR str

(error)

[ ]

Fields to be used when date ranges, if no range queries are 


In the string formats you can add the boost by adding ^ and the boost factor, e.g. ^2 or ^0.5

As string:

"field"

As a List:

["field1", "field2^2", "field3^3"]

As a Dictionary:

{"field1": 1, "field2" : 2, "field3": 3.0}

as a List of QPLFields:

[{"name":"field1", "boost": 1}, {"name":"field2", "boost": 2}, {"name":"field3", "boost": 3}]

range_fields

List[str] OR Dict[str, float]

OR List[QPLField] OR str

(error)[ ]

Fields to be used when ranges


In the string formats you can add the boost by adding ^ and the boost factor, e.g. ^2 or ^0.5

As string:

"field"

As a List:

["field1", "field2^2", "field3^3"]

As a Dictionary:

{"field1": 1, "field2" : 2, "field3": 3.0}

as a List of QPLFields:

[{"name":"field1", "boost": 1}, {"name":"field2", "boost": 2}, {"name":"field3", "boost": 3}]

date_format

str(error)

Date format used to convert date values in the query.

The format to use must be compatible with the engine specific query


timezone

str(error)

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(error)10Slop value used for the NEAR operator

slop_before

number(error)2Slop value used for the BEFORE operator

slop_adj

number(error)0Slop value used for the ADJ operator

slop_span_not

number(error)0Slop value used for the SPAN NOT operator

wildcard

bool(error)False

Use wildcard operators

Applicable only to the parser


grammar

File Path Or str(error)

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](error){}

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[](error)

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



  • No labels