You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 6
Next »
PyQPL (Python Query Processing Language) is a scripting language which allows you to easily construct very complex queries.
The key features are:
- Engine agnostic: The main goal of PyQPL is the standardization of queries, regardless of the end search engine.
- Query parsing: PyQPL implements LARK, a parsing toolkit which allows the parsing of any written text, using a provided grammar. For this case we created a custom query grammar using a LALR parser, to process and detect the operators and their values.
- Manual query building: If parsing a query is not the goal of your task, PyQPL also supports the manual creation of queries.
- Query translation: Translation of all PyQPL queries to an engine specific query using a translator (Currently just Elasticsearch). More translators can be created using the AbstractTransformer class.
- Saga coupling: Keyword normalization, synonym expansion and special case query manipulation, via Saga server coupling
- Synonym expansion: Native synonym expansion, via lambda call injection; making the retrieval and manipulation of the synonyms an external process, and only focusing on the query synonym injection.
Support for custom operators: Creation of custom operators, by using the Operator class, or just declaring it's type directly in the query. And custom operator translation via lambda function injection into the translator.
Space contributors
{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":815202871}