Data model

This section details the three data models used by Helix Search.

Every data model document has a unique Elasticsearch document id (_id) in the format <type>-<depotFile>#<rev> except for the ChangeModel, which uses the format <type>-<changeNumber>; for its unique document id (_id).

For example, for an AssetModel document, id will be asset-//depot/dam/Music Loops/License.txt#1

You can perform a document look-up on Elasticsearch as follows:

GET http://localhost:9200/index-perforce1-000001/_doc/asset-%2f%2fdepot%2fmain%2fp4-perl%2fP4.pm%2329

Important

The Elasticsearch document id (_id) can not be larger than 512 bytes.

ChangeModel

One instance of this represents single change in the Helix Core Server.

Name Description Type

type

Fixed string "change"

String

change

Helix Core Server change number

Long

date

Change date

Long

client

Helix Core Server client name

String

user

Helix Core Server user

String

restricted

Whether the change is restricted or not

Boolean

description

Change description

String

depotFile

Depot file path

String

ContentModel

One instance of this represents contents of single changed file in the Helix Core Server:

Name Description Type

type

Fixed string "content"

String

depotFile

Depot file path

String

rev

Helix Core Server revision number

Integer

change

Helix Core Server change number

Long

date

Change date

Long

fileName

File name

String

fileSize

File size in bytes

Long

fileType

File type, for example: text, binary, symlink, unicode, utf8, utf16. For more information on filetypes, see File Types in the Helix Core Command-Line (P4) Reference.

String

action

Helix Core Server action, for example: add and edit

String

user

User that submitted the change

String

contentType

Content type detected by the Tika library

String

content

The content of the file indexed by the Tika library, includes handwriting or any other text

String

AssetModel

One instance of this represents a Helix DAM asset in the Helix Core Server:

Name Description Type

type

Fixed string "asset"

String

depotFile

Depot file path

String

rev

Helix Core Server revision number

Integer

change

Helix Core Server change number

Long

date

Change date

Long

fileName

File name

String

fileSize

File size in bytes

Long

digest MD5sSum of content String

fileType

File type

String

action

Helix Core Server action, for example: add and edit

String

user

User that submitted the change

String

blur

The BlurHash for the image

String

blurSize Blur pixel dimensions based on thumbnail/preview String

detected

Auto-detected image tags. For <TagModel>, see TagModel.

List<TagModel>

attributes

List of 'key' and 'value' pair of tags

List<AttributeModel>

customAttributes

Array of 'uuid' and 'value' pairs

JsonArray

contentType

Content type detected by the Tika library

String

metadata

Metadata found by the Tika library, for example: EXIF metadata and more

Map<String, String>

gps

GpsModel data extracted from EXIF metadata, see GpsModel.

GpsModel

TagModel

One instance of this represents a single instance of an auto-detected tag on a file in the Helix Core Server:

Name Description Type

tag

Tag name

String

confidence

Confidence of detection (floating-point value from 0 to 1 where 1 represents 100%)

Float

positions

Optional: 1 or more x,y points locating the tag within the image. Stored as a floating-point value from top-left (0,0) to bottom-right (1,1)

List<Point2D.Float>

GpsModel

Note

To view example queries for EXIF data, see EXIF query examples .

One instance of this represents one GPS location of a file content in the Helix Core Server:

Name Description Type

location

Elasticsearch compatible location, see Location.

Location

altitude

Altitude in meters

Double

bearing

Bearing in degrees from the north

Double

Location

One instance of this represents one Longitude/Latitude location.

Name Description Type

lat

Latitude in decimal

Double

lon

Longitude in decimal

Double

(Deprecated) RevisionModel

Important

From the Helix Search 2024.1 release, RevisionModel has been deprecated and it will no longer be indexed.

One instance of this represents single revision of a file in the Helix Core Server:

Name Description Type

type

Fixed string "revision"

String

change

Helix Core Server change number

Long

date

Change date

Long

depotFile

Depot file path

String

action

Helix Core Server action,for example: add and edit

String

fileType

File type, for example: text, binary, symlink, unicode, utf8, utf16. For more information on filetypes, see File Types in the Helix Core Command-Line (P4) Reference.

String

rev

Helix Core Server revision number

Integer

fileName

File name

String

fileSize

File size in bytes

Long

digest

An MD5 digest of the file represented by a 32 hexadecimal digit string

String

user

User that submitted the change

String