PyQPL

Accenture Search & Content Analytics

PyQPL is a search-engine agnostic domain specific scripting language for constructing complex search engine queries. It's output can be rendered into query languages for multiple search engines.


UNDER DEVELOPMENT

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. 

    This functionality is only available in manual query Building

Recent space activity

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":815202829}


  • No labels