--- name: Basic Search route: /SearchBasic menu: Documentation submenu: Search --- import themen from 'theme/styles/styled-colors'; import * as theme from 'react-syntax-highlighter/dist/esm/styles/hljs'; import SyntaxHighlighter from 'react-syntax-highlighter'; import Img from 'theme/components/shared/Img' # Basic Search The basic search allows you to query using typename of an entity, associated classification/tag and has support for filtering on the entity attribute(s) as well as the classification/tag attributes. The entire query structure can be represented using the following JSON structure (called SearchParameters) <SyntaxHighlighter wrapLines={true} language="json" style={theme.dark}> {`{ "typeName": "hive_column", "excludeDeletedEntities": true, "classification": "PII", "query": "", "offset": 0, "limit": 25, "entityFilters": { }, "tagFilters": { }, "attributes": [ "table", "qualifiedName"] }`} </SyntaxHighlighter> **Field description** <SyntaxHighlighter wrapLines={true} language="json" style={theme.dark}> {`typeName: the type of entity to look for excludeDeletedEntities: should the search exclude deleted entities? (default: true) classification: only include entities with given classification query: any free text occurrence that the entity should have (generic/wildcard queries might be slow) offset: starting offset of the result set (useful for pagination) limit: max number of results to fetch entityFilters: entity attribute filter(s) tagFilters: classification attribute filter(s) attributes: attributes to include in the search result`} </SyntaxHighlighter> <Img src={`/images/twiki/search-basic-hive_column-PII.png`} height="500" width="840"/> Attribute based filtering can be done on multiple attributes with AND/OR conditions. **Examples of filtering (for hive_table attributes)** * Single attribute <SyntaxHighlighter wrapLines={true} language="json" style={theme.dark}> {` { "typeName": "hive_table", "excludeDeletedEntities": true, "offset": 0, "limit": 25, "entityFilters": { "attributeName": "name", "operator": "contains", "attributeValue": "customers" }, "attributes": [ "db", "qualifiedName" ] }`} </SyntaxHighlighter> <Img src={`/images/twiki/search-basic-hive_table-customers.png`} height="500" width="840"/> * Multi-attribute with OR <SyntaxHighlighter wrapLines={true} language="json" style={theme.dark}> {` { "typeName": "hive_table", "excludeDeletedEntities": true, "offset": 0, "limit": 25, "entityFilters": { "condition": "OR", "criterion": [ { "attributeName": "name", "operator": "contains", "attributeValue": "customers" }, { "attributeName": "name", "operator": "contains", "attributeValue": "provider" } ] }, "attributes": [ "db", "qualifiedName" ] }`} </SyntaxHighlighter> <Img src={`/images/twiki/search-basic-hive_table-customers-or-provider.png`} height="500" width="840"/> * Multi-attribute with AND <SyntaxHighlighter wrapLines={true} language="json" style={theme.dark}> {` { "typeName": "hive_table", "excludeDeletedEntities": true, "offset": 0, "limit": 25, "entityFilters": { "condition": "AND", "criterion": [ { "attributeName": "name", "operator": "contains", "attributeValue": "customers" }, { "attributeName": "owner", "operator": "eq", "attributeValue": "hive" } ] }, "attributes": [ "db", "qualifiedName" ] }`} </SyntaxHighlighter> <Img src={`/images/twiki/search-basic-hive_table-customers-owner_is_hive.png`} height="500" width="840"/> **Supported operators for filtering** * LT (symbols: <, lt) works with Numeric, Date attributes * GT (symbols: >, gt) works with Numeric, Date attributes * LTE (symbols: <=, lte) works with Numeric, Date attributes * GTE (symbols: >=, gte) works with Numeric, Date attributes * EQ (symbols: eq, =) works with Numeric, Date, String attributes * NEQ (symbols: neq, !=) works with Numeric, Date, String attributes * LIKE (symbols: like, LIKE) works with String attributes * STARTS_WITH (symbols: startsWith, STARTSWITH) works with String attributes * ENDS_WITH (symbols: endsWith, ENDSWITH) works with String attributes * CONTAINS (symbols: contains, CONTAINS) works with String attributes **CURL Samples** <SyntaxHighlighter wrapLines={true} language="shell" style={theme.dark}> {`curl -sivk -g -u <user>:<password> -X POST -d '{ "typeName": "hive_table", "excludeDeletedEntities": true, "classification": "", "query": "", "offset": 0, "limit": 50, "entityFilters": { "condition": "AND", "criterion": [ { "attributeName": "name", "operator": "contains", "attributeValue": "customers" }, { "attributeName": "owner", "operator": "eq", "attributeValue": "hive" } ] }, "attributes": [ "db", "qualifiedName" ] }' <protocol>://<atlas_host>:<atlas_port>/api/atlas/v2/search/basic`} </SyntaxHighlighter>