RQL搜索栏¶
RQL搜索栏是一个可视组件,默认情况下隐藏在 搜索 输入足够用于常见用例。
提供了一个自动完成帮助器来帮助您键入有效的查询,包括语法和模式有效性方面的查询。
如何执行搜索¶
你可以使用 RQL搜索栏 要键入rql查询、纯文本查询或标准快捷方式,例如 <EntityType> 或 <EntityType> <attrname> <value> .
最后,所有查询都被转换为RQL,因为它是服务器(数据)端唯一可以理解的语言。为了将用户查询转换为rql,cubicWeb使用所谓的 magicSearch组件 ,定义在 cubicweb.web.views.magicsearch
从而委托给一些查询预处理器,这些预处理器负责解释用户查询并生成相应的RQL。
主处理器循环的代码很容易理解:
for proc in self.processors:
try:
return proc.process_query(uquery, req)
except (RQLSyntaxError, BadRQLQuery):
pass
这个想法很简单:对于每个查询处理器,尝试翻译查询。如果失败,请尝试使用下一个处理器,如果成功,我们就完成了,并将执行RQL查询。