0.5.0-incubating/Search.html (246 lines of code) (raw):

<!DOCTYPE html> <!-- | Generated by Apache Maven Doxia at 2015-07-09 | Rendered using Apache Maven Fluido Skin 1.3.0 --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="Date-Revision-yyyymmdd" content="20150709" /> <meta http-equiv="Content-Language" content="en" /> <title>Metadata and Governance - Search</title> <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" /> <link rel="stylesheet" href="./css/site.css" /> <link rel="stylesheet" href="./css/print.css" media="print" /> <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script> <script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script> </head> <body class="topBarEnabled"> <div id="topbar" class="navbar navbar-fixed-top "> <div class="navbar-inner"> <div class="container" style="width: 68%;"><div class="nav-collapse"> <ul class="nav"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Atlas <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="index.html" title="About">About</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="Wiki">Wiki</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="News">News</a> </li> <li> <a href="https://git-wip-us.apache.org/repos/asf/incubator-atlas.git" title="Git">Git</a> </li> <li> <a href="https://svn.apache.org/repos/asf/incubator/atlas" title="Svn">Svn</a> </li> <li> <a href="https://issues.apache.org/jira/browse/ATLAS" title="Jira">Jira</a> </li> <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS/PoweredBy" title="Powered by">Powered by</a> </li> <li> <a href="http://blogs.apache.org/atlas/" title="Blog">Blog</a> </li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="project-info.html" title="Summary">Summary</a> </li> <li> <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a> </li> <li> <a href="http://webchat.freenode.net?channels=apacheatlas&uio=d4" title="IRC">IRC</a> </li> <li> <a href="team-list.html" title="Team">Team</a> </li> <li> <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a> </li> <li> <a href="source-repository.html" title="Source Repository">Source Repository</a> </li> <li> <a href="license.html" title="License">License</a> </li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="https://cwiki.apache.org/confluence/display/ATLAS" title="Coming soon">Coming soon</a> </li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="index.html" title="current">current</a> </li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="index.html" title="Overview">Overview</a> </li> <li> <a href="QuickStart.html" title="Getting Started">Getting Started</a> </li> <li> <a href="Architecture.html" title="Architecture">Architecture</a> </li> <li> <a href="InstallationSteps.html" title="Installation">Installation</a> </li> <li> <a href="TypeSystem.html" title="Type System">Type System</a> </li> <li> <a href="Configuration.html" title="Configuration">Configuration</a> </li> <li> <a href="Security.html" title="Security">Security</a> </li> <li> <a href="api/rest.html" title="Rest API">Rest API</a> </li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a> </li> <li> <a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a> </li> <li> <a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a> </li> <li> <a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a> </li> </ul> </li> </ul> <form id="search-form" action="http://www.google.com/search" method="get" class="navbar-search pull-right" > <input value="http://atlas.incubator.apache.org" name="sitesearch" type="hidden"/> <input class="search-query" name="q" id="query" type="text" /> </form> <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script> <iframe src="http://www.facebook.com/plugins/like.php?href=http://atlas.incubator.apache.org/atlas-docs&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark" scrolling="no" frameborder="0" style="border:none; width:80px; height:20px; margin-top: 10px;" class="pull-right" ></iframe> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <ul class="nav pull-right"><li style="margin-top: 10px;"> <div class="g-plusone" data-href="http://atlas.incubator.apache.org/atlas-docs" data-size="medium" width="60px" align="right" ></div> </li></ul> </div> </div> </div> </div> <div class="container"> <div id="banner"> <div class="pull-left"> <a href=".." id="bannerLeft"> <img src="images/atlas-logo.png" alt="Apache Atlas" width="200px" height="45px"/> </a> </div> <div class="pull-right"> <a href="http://incubator.apache.org" id="bannerRight"> <img src="images/apache-incubator-logo.png" alt="Apache Incubator"/> </a> </div> <div class="clear"><hr/></div> </div> <div id="breadcrumbs"> <ul class="breadcrumb"> <li class=""> <a href="http://www.apache.org" class="externalLink" title="Apache"> Apache</a> </li> <li class="divider ">/</li> <li class=""> <a href="index.html" title="Atlas"> Atlas</a> </li> <li class="divider ">/</li> <li class="">Search</li> <li id="publishDate" class="pull-right">Last Published: 2015-07-09</li> <li class="divider pull-right">|</li> <li id="projectVersion" class="pull-right">Version: 0.5-incubating</li> </ul> </div> <div id="bodyColumn" > <div class="section"> <h2>Search<a name="Search"></a></h2> <p>Atlas exposes search over the metadata in two ways:</p> <ul> <li>Search using DSL</li> <li>Full-text search</li></ul></div> <div class="section"> <h3>Search DSL Grammar<a name="Search_DSL_Grammar"></a></h3> <p>The DSL exposes an SQL like query language for searching the metadata based on the type system. The grammar for the DSL is below.</p> <div class="source"> <pre> queryWithPath: query ~ opt(WITHPATH) query: rep1sep(singleQuery, opt(COMMA)) singleQuery: singleQrySrc ~ opt(loopExpression) ~ opt(selectClause) singleQrySrc = FROM ~ fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression) | WHERE ~ (expr ^? notIdExpression) | expr ^? notIdExpression | fromSrc ~ opt(WHERE) ~ opt(expr ^? notIdExpression) fromSrc: identifier ~ AS ~ alias | identifier loopExpression: LOOP ~ (LPAREN ~&gt; query &lt;~ RPAREN) ~ opt(intConstant &lt;~ TIMES) ~ opt(AS ~&gt; alias) selectClause: SELECT ~ rep1sep(selectExpression, COMMA) selectExpression: expr ~ opt(AS ~&gt; alias) expr: compE ~ opt(rep(exprRight)) exprRight: (AND | OR) ~ compE compE: arithE ~ (LT | LTE | EQ | NEQ | GT | GTE) ~ arithE | arithE ~ (ISA | IS) ~ ident | arithE ~ HAS ~ ident | arithE arithE: multiE ~ opt(rep(arithERight)) arithERight: (PLUS | MINUS) ~ multiE multiE: atomE ~ opt(rep(multiERight)) multiERight: (STAR | DIV) ~ atomE atomE: literal | identifier | LPAREN ~&gt; expr &lt;~ RPAREN identifier: rep1sep(ident, DOT) alias: ident | stringLit literal: booleanConstant | intConstant | longConstant | floatConstant | doubleConstant | stringLit </pre></div> <p>Grammar language: {noformat} opt(a) =&gt; a is optional ~ =&gt; a combinator. 'a ~ b' means a followed by b rep =&gt; zero or more rep1sep =&gt; one or more, separated by second arg. {noformat}</p> <p>Language Notes:</p> <ul> <li>A <b><a href="./SingleQuery.html">SingleQuery</a></b> expression can be used to search for entities of a <i>Trait</i> or <i>Class</i>.</li></ul>Entities can be filtered based on a 'Where Clause' and Entity Attributes can be retrieved based on a 'Select Clause'. <ul> <li>An Entity Graph can be traversed/joined by combining one or more <a href="./SingleQueries.html">SingleQueries</a>.</li> <li>An attempt is made to make the expressions look SQL like by accepting keywords &quot;SELECT&quot;,</li></ul>&quot;FROM&quot;, and &quot;WHERE&quot;; but these are optional and users can simply think in terms of Entity Graph Traversals. <ul> <li>The transitive closure of an Entity relationship can be expressed via the <i>Loop</i> expression. A</li></ul><i>Loop</i> expression can be any traversal (recursively a query) that represents a <i>Path</i> that ends in an Entity of the same <i>Type</i> as the starting Entity. <ul> <li>The <i><a href="./WithPath.html">WithPath</a></i> clause can be used with transitive closure queries to retrieve the Path that</li></ul>connects the two related Entities. (We also provide a higher level interface for Closure Queries see scaladoc for 'org.apache.metadata.query.ClosureQuery') <ul> <li>There are couple of Predicate functions different from SQL: <ul> <li><i>is</i> or <i>isa</i>can be used to filter Entities that have a particular Trait.</li> <li><i>has</i> can be used to filter Entities that have a value for a particular Attribute.</li></ul></li></ul></div> <div class="section"> <h4>DSL Examples<a name="DSL_Examples"></a></h4> <p></p> <ul> <li>from DB</li> <li>DB where name=&quot;Reporting&quot; select name, owner</li> <li>DB has name</li> <li>DB is <a href="./JdbcAccess.html">JdbcAccess</a></li> <li>Column where Column isa PII</li> <li>Table where name=&quot;sales_fact&quot;, columns</li> <li>Table where name=&quot;sales_fact&quot;, columns as column select column.name, column.dataType, column.comment</li></ul></div> <div class="section"> <h3>Full-text Search<a name="Full-text_Search"></a></h3> <p>Atlas also exposes a lucene style full-text search capability.</p></div> </div> </div> <hr/> <footer> <div class="container"> <div class="row span12">Copyright &copy; 2015 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved. </div> <p id="poweredBy" class="pull-right"> <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /> </a> </p> </div> </footer> </body> </html>