
## Business Graph attributes

URL: https://docs.atlan.com/product/capabilities/build-apps/sdks/python/search/references/searchable-fields/glossary

> Reference glossary-specific search attributes for terms and categories using the Atlan Python SDK (pyatlan).

# Business graph attributes

These attributes only exist on glossary-related objects in Atlan (terms and categories). Attempting to search for them on other asset types will produce no results.

## `[Atlas]GlossaryTerm.ANCHOR` [](/product/capabilities/build-apps/sdks/python/search/references/searchable-fields#keyword "Keyword")

The `qualifiedName` of the glossary in which the term is contained in Atlan.

### Java

```java showLineNumbers title="Build the query and request"
IndexSearchRequest index = client.assets.select() // (1)
 .where(GlossaryTerm.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryTerm.ANCHOR) // (3)
 .toRequest();
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```java title="Equivalent query from Elastic"
 Query byBusiness Graph = TermQuery.of(t -> t
 .field("__glossary")
 .value("hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery();
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```java title="Run the search"
for (Asset result : index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.getAnchor()`, but only after the result has been cast to the appropriate type (`GlossaryTerm`).

### Python

```python showLineNumbers title="Build the query and request"
from pyatlan.client.atlan import AtlanClient
from pyatlan.model.assets import AtlasGlossaryTerm
from pyatlan.model.fluent_search import FluentSearch

index = (FluentSearch() # (1)
 .where(AtlasGlossaryTerm.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) # (2)
 .include_on_results(AtlasGlossaryTerm.ANCHOR) # (3)
 ).to_request()
```

1. You can search across all assets using a `FluentSearch()` object. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualified_name of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualified_name.
3. To make sure the details of this field are included in each result, add the field to `include_on_results()`.

```python title="Run the search"
client = AtlanClient()
for result in client.asset.search(index): # (1)
 if isinstance(result, AtlasGlossaryTerm): # (2)
 parent = result.anchor
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.anchor`, but only after the result has been confirmed to the appropriate type (`AtlasGlossaryTerm`).

### Kotlin

```kotlin showLineNumbers title="Build the query and request"
val index = client.assets.select() // (1)
 .where(GlossaryTerm.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryTerm.ANCHOR) // (3)
 .toRequest()
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```kotlin title="Equivalent query from Elastic"
 val byBusiness Graph = TermQuery.of(t -> t
 .field("__glossary")
 .value("hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery()
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```kotlin title="Run the search"
for (result in index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.anchor`, but only after the result has been cast to the appropriate type (`GlossaryTerm`).

### Raw REST API

```json showLineNumbers title="POST /api/meta/search/indexsearch"
{
 "dsl": {
 "query": {
 "term": { "__glossary": { "value": "hvhGIKJi7N4xrUhyy8SAP" }} // (1)
 }
 },
 "attributes": [ "anchor" ]
}
```

1. You can use a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName of the parent glossary.

```json showLineNumbers title="Response"
{
 "entities": [
 {
 "attributes": {
 "anchor": {
 "guid": "3b7fc7d6-0447-4229-a5c8-53f793aefe0b",
 "typeName": "AtlasBusiness Graph",
 "uniqueAttributes": {
 "qualifiedName": "hvhGIKJi7N4xrUhyy8SAP"
 }
 }
 }
 }
 ]
}
```

## `[Atlas]GlossaryCategory.ANCHOR` [](/product/capabilities/build-apps/sdks/python/search/references/searchable-fields#keyword "Keyword")

The `qualifiedName` of the glossary in which the category is contained in Atlan.

### Java

```java showLineNumbers title="Build the query and request"
IndexSearchRequest index = client.assets.select() // (1)
 .where(GlossaryCategory.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryCategory.ANCHOR) // (3)
 .toRequest();
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```java title="Equivalent query from Elastic"
 Query byBusiness Graph = TermQuery.of(t -> t
 .field("__glossary")
 .value("hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery();
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```java title="Run the search"
for (Asset result : index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.getAnchor()`, but only after the result has been cast to the appropriate type (`GlossaryCategory`).

### Python

```python showLineNumbers title="Build the query and request"
from pyatlan.client.atlan import AtlanClient
from pyatlan.model.assets import AtlasGlossaryCategory
from pyatlan.model.fluent_search import FluentSearch

index = (FluentSearch() # (1)
 .where(AtlasGlossaryCategory.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) # (2)
 .include_on_results(AtlasGlossaryCategory.ANCHOR) # (3)
 ).to_request()
```

1. You can search across all assets using a `FluentSearch()` object. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualified_name of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualified_name.
3. To make sure the details of this field are included in each result, add the field to `include_on_results()`.

```python title="Run the search"
client = AtlanClient()
for result in client.asset.search(index): # (1)
 if isinstance(result, AtlasGlossaryCategory): # (2)
 parent = result.anchor
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.anchor`, but only after the result has been confirmed to the appropriate type (`AtlasGlossaryCategory`).

### Kotlin

```kotlin showLineNumbers title="Build the query and request"
val index = client.assets.select() // (1)
 .where(GlossaryCategory.ANCHOR.eq("hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryCategory.ANCHOR) // (3)
 .toRequest()
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of the glossary in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```kotlin title="Equivalent query from Elastic"
 val byBusiness Graph = TermQuery.of(t -> t
 .field("__glossary")
 .value("hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery()
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```kotlin title="Run the search"
for (result in index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent glossary can be retrieved from a result through `.anchor`, but only after the result has been cast to the appropriate type (`GlossaryCategory`).

### Raw REST API

```json showLineNumbers title="POST /api/meta/search/indexsearch"
{
 "dsl": {
 "query": {
 "term": { "__glossary": { "value": "hvhGIKJi7N4xrUhyy8SAP" }} // (1)
 }
 },
 "attributes": [ "anchor" ]
}
```

1. You can use a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName of the parent glossary.

```json showLineNumbers title="Response"
{
 "entities": [
 {
 "attributes": {
 "anchor": {
 "guid": "3b7fc7d6-0447-4229-a5c8-53f793aefe0b",
 "typeName": "AtlasBusiness Graph",
 "uniqueAttributes": {
 "qualifiedName": "hvhGIKJi7N4xrUhyy8SAP"
 }
 }
 }
 }
 ]
}
```

## `[Atlas]GlossaryTerm.CATEGORIES` [](/product/capabilities/build-apps/sdks/python/search/references/searchable-fields#keyword "Keyword")

The `qualifiedName` of one or more categories in which the term is organized in Atlan.

### Java

```java showLineNumbers title="Build the query and request"
IndexSearchRequest index = client.assets.select() // (1)
 .where(GlossaryTerm.CATEGORIES.in( // (2)
 List.of("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP",
 "SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP")));
 .includeOnResults(GlossaryTerm.CATEGORIES) // (3)
 .toRequest();
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of one or more categories in the `in()` predicate. This uses a [terms query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```java title="Equivalent query from Elastic"
 Query byCategory = TermsQuery.of(t -> t
 .field("__categories")
 .terms(TermsQueryField.of(f -> f
 .value(List.of(FieldValue.of("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"),
 FieldValue.of("SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP"))))))
 ._toQuery();
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```java title="Run the search"
for (Asset result : index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The categories organizing the term can be retrieved from a result through `.getCategories()`, but only after the result has been cast to the appropriate type (`GlossaryTerm`).

### Python

```python showLineNumbers title="Build the query and request"
from pyatlan.client.atlan import AtlanClient
from pyatlan.model.assets import AtlasGlossaryTerm
from pyatlan.model.fluent_search import FluentSearch

index = (FluentSearch() # (1)
 .where(AtlasGlossaryTerm.CATEGORIES.within([ # (2)
 "Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP",
 "SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP"
 ]))
 .include_on_results(AtlasGlossaryTerm.CATEGORIES) # (3)
 ).to_request()
```

1. You can search across all assets using a `FluentSearch()` object. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualified_name of one or more categories in the `within()` predicate. This uses a [terms query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualified_name.
3. To make sure the details of this field are included in each result, add the field to `include_on_results()`.

```python title="Run the search"
client = AtlanClient()
for result in client.asset.search(index): # (1)
 if isinstance(result, AtlasGlossaryTerm): # (2)
 categories = result.categories
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The categories organizing the term can be retrieved from a result through `.categories`, but only after the result has been confirmed to the appropriate type (`AtlasGlossaryTerm`).

### Kotlin

```kotlin showLineNumbers title="Build the query and request"
val index = client.assets.select() // (1)
 .where(GlossaryTerm.CATEGORIES.in( // (2)
 List.of("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP",
 "SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP")));
 .includeOnResults(GlossaryTerm.CATEGORIES) // (3)
 .toRequest()
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName of one or more categories in the `in()` predicate. This uses a [terms query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```kotlin title="Equivalent query from Elastic"
 val byCategory = TermsQuery.of(t -> t
 .field("__categories")
 .terms(TermsQueryField.of(f -> f
 .value(List.of(FieldValue.of("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"),
 FieldValue.of("SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP"))))))
 ._toQuery()
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```kotlin title="Run the search"
for (result in index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The categories organizing the term can be retrieved from a result through `.categories`, but only after the result has been cast to the appropriate type (`GlossaryTerm`).

### Raw REST API

```json showLineNumbers title="POST /api/meta/search/indexsearch"
{
 "dsl": {
 "query": {
 "terms": { // (1)
 "__categories": [
 "Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP",
 "SWpBeZFipHmXhSvxUrVNw@hvhGIKJi7N4xrUhyy8SAP"
 ]
 }
 }
 },
 "attributes": [ "categories" ]
}
```

1. You can use a [terms query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName of one of several categories.

```json showLineNumbers title="Response"
{
 "entities": [
 {
 "attributes": {
 "anchor": {
 "guid": "324f7d64-9ebb-4c61-8e95-129b88dbad60",
 "typeName": "AtlasGlossaryCategory",
 "uniqueAttributes": {
 "qualifiedName": "Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"
 }
 }
 }
 }
 ]
}
```

## `[Atlas]GlossaryCategory.PARENT_CATEGORY` [](/product/capabilities/build-apps/sdks/python/search/references/searchable-fields#keyword "Keyword")

The `qualifiedName` of the parent category in which a subcategory is contained in Atlan.

### Java

```java showLineNumbers title="Build the query and request"
IndexSearchRequest index = client.assets.select() // (1)
 .where(GlossaryCategory.PARENT_CATEGORY.eq("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryCategory.PARENT_CATEGORY) // (3)
 .toRequest();
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName the parent category in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```java title="Equivalent query from Elastic"
 Query byParentCategory = TermQuery.of(t -> t
 .field("__parentCategory")
 .value("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery();
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```java title="Run the search"
for (Asset result : index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent category in which the subcategory is contained can be retrieved from a result through `.getParentCategory()`, but only after the result has been cast to the appropriate type (`GlossaryCategory`).

### Python

```python showLineNumbers title="Build the query and request"
from pyatlan.client.atlan import AtlanClient
from pyatlan.model.assets import AtlasGlossaryCategory
from pyatlan.model.fluent_search import FluentSearch

index = (FluentSearch() # (1)
 .where(AtlasGlossaryCategory.PARENT_CATEGORY.eq("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP")) # (2)
 .include_on_results(AtlasGlossaryCategory.PARENT_CATEGORY) # (3)
 ).to_request()
```

1. You can search across all assets using a `FluentSearch()` object. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualified_name the parent category in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualified_name.
3. To make sure the details of this field are included in each result, add the field to `include_on_results()`.

```python title="Run the search"
client = AtlanClient()
for result in client.asset.search(index): # (1)
 if isinstance(result, AtlasGlossaryCategory): # (2)
 parent = result.parent_category
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent category in which the subcategory is contained can be retrieved from a result through `.parent_category`, but only after the result has been confirmed to the appropriate type (`AtlasGlossaryCategory`).

### Kotlin

```kotlin showLineNumbers title="Build the query and request"
val index = client.assets.select() // (1)
 .where(GlossaryCategory.PARENT_CATEGORY.eq("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP")) // (2)
 .includeOnResults(GlossaryCategory.PARENT_CATEGORY) // (3)
 .toRequest()
```

1. You can search across all assets using the `select()` method of the `assets` member on any client. (For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).)
2. Then provide the exact, full qualifiedName the parent category in the `eq()` predicate. This uses a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName.

 ```kotlin title="Equivalent query from Elastic"
 val byParentCategory = TermQuery.of(t -> t
 .field("__parentCategory")
 .value("Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"))
 ._toQuery()
 ```

3. To make sure the details of this field are included in each result, add the field to `includeOnResults()`.

```kotlin title="Run the search"
for (result in index.search(client))
}
```

1. For details, see [Searching for assets](https://docs.atlan.com/llms/platform/python/search-assets/llms.txt).
2. The parent category in which the subcategory is contained can be retrieved from a result through `.parentCategory`, but only after the result has been cast to the appropriate type (`GlossaryCategory`).

### Raw REST API

```json showLineNumbers title="POST /api/meta/search/indexsearch"
{
 "dsl": {
 "query": {
 "term": {"__parentCategory":{"value":"Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"} // (1)
 }
 },
 "attributes": [ "parentCategory" ]
}
```

1. You can use a [term query](https://docs.atlan.com/llms/platform/python/term-level/llms.txt) to exactly match the qualifiedName of the parent category.

```json showLineNumbers title="Response"
{
 "entities": [
 {
 "attributes": {
 "parentCategory": {
 "guid": "324f7d64-9ebb-4c61-8e95-129b88dbad60",
 "typeName": "AtlasGlossaryCategory",
 "uniqueAttributes": {
 "qualifiedName": "Y5kzMdHDHbKWncb3EK1w8@hvhGIKJi7N4xrUhyy8SAP"
 }
 }
 }
 }
 ]
}
```

---
