Logo

Navigation

  • index
  • modules |
  • CubicWeb 3.35.12 »
  • RQL search bar

RQL search bar¶

The RQL search bar is a visual component, hidden by default, the tiny search input being enough for common use cases.

An autocompletion helper is provided to help you type valid queries, both in terms of syntax and in terms of schema validity.

class cubicweb.web.views.magicsearch.RQLSuggestionsBuilder(*args, **kwargs)[source]¶

This component was previously used by the rql_suggest ajax function to provide completion to the search bar. It is now deprecated in favor of the cubicweb.rqlsuggestions.RQLSuggestionsBuilder class.

build_suggestions(user_rql)[source]¶

How search is performed¶

You can use the rql search bar to either type RQL queries, plain text queries or standard shortcuts such as <EntityType> or <EntityType> <attrname> <value>.

Ultimately, all queries are translated to rql since it’s the only language understood on the server (data) side. To transform the user query into RQL, CubicWeb uses the so-called magicsearch component, defined in cubicweb.web.views.magicsearch, which in turn delegates to a number of query preprocessor that are responsible of interpreting the user query and generating corresponding RQL.

The code of the main processor loop is easy to understand:

for proc in self.processors:
    try:
        return proc.process_query(uquery, req)
    except (RQLSyntaxError, BadRQLQuery):
        pass

The idea is simple: for each query processor, try to translate the query. If it fails, try with the next processor, if it succeeds, we’re done and the RQL query will be executed.

Table Of Contents

  • RQL search bar
    • How search is performed

Changelog

Latest releases

Quick search

Navigation

  • index
  • modules |
  • CubicWeb 3.35.12 »
  • RQL search bar
© Copyright 2001-2020, Logilab. Last updated on Nov 15, 2022. Created using Sphinx 4.5.0.