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)
{{
"typeName": "hive_column",
"excludeDeletedEntities": true,
"classification": "PII",
"query": "",
"offset": 0,
"limit": 25,
"entityFilters": { },
"tagFilters": { },
"attributes": [ "table", "qualifiedName"]
}
}
Field description
{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
}
Attribute based filtering can be done on multiple attributes with AND/OR conditions.
Examples of filtering (for hive_table attributes)
- Single attribute
{{
"typeName": "hive_table",
"excludeDeletedEntities": true,
"offset": 0,
"limit": 25,
"entityFilters": {
"attributeName": "name",
"operator": "contains",
"attributeValue": "customers"
},
"attributes": [ "db", "qualifiedName" ]
}
}
- Multi-attribute with OR
{{
"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" ]
}
}
- Multi-attribute with AND
{{
"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" ]
}
}
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
{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
}