Skip to main content
View as Markdown

Search Integration - Content Management

Search Integration​

Search Metadata via eSearch​

Use KalturaESearchEntryMetadataItem to search entries by metadata field values:

curl -X POST "$KALTURA_SERVICE_URL/service/elasticsearch_esearch/action/searchEntry" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "searchParams[objectType]=KalturaESearchEntryParams" \
-d "searchParams[searchOperator][objectType]=KalturaESearchEntryOperator" \
-d "searchParams[searchOperator][operator]=1" \
-d "searchParams[searchOperator][searchItems][0][objectType]=KalturaESearchEntryMetadataItem" \
-d "searchParams[searchOperator][searchItems][0][searchTerm]=Engineering" \
-d "searchParams[searchOperator][searchItems][0][itemType]=1" \
-d "searchParams[searchOperator][searchItems][0][metadataProfileId]=$PROFILE_ID"
ParameterTypeRequiredDescription
searchParams[objectType]stringYesAlways KalturaESearchEntryParams
searchParams[searchOperator][objectType]stringYesAlways KalturaESearchEntryOperator
searchParams[searchOperator][operator]integerYes1=AND, 2=OR
searchParams[searchOperator][searchItems][N][objectType]stringYesKalturaESearchEntryMetadataItem for metadata search
searchParams[searchOperator][searchItems][N][searchTerm]stringYesValue to search for
searchParams[searchOperator][searchItems][N][itemType]integerYes1=EXACT_MATCH, 2=PARTIAL, 3=STARTS_WITH
searchParams[searchOperator][searchItems][N][metadataProfileId]integerNoScope search to a specific metadata profile
searchParams[searchOperator][searchItems][N][xpath]stringNoTarget a specific field (e.g., /metadata/Department)

Target a specific field using the xpath parameter:

-d 'searchParams[searchOperator][searchItems][0][xpath]=/metadata/Department'

Search item types (itemType): 1 = EXACT_MATCH, 2 = PARTIAL, 3 = STARTS_WITH

Searchable Fields​

Fields with <searchable>true</searchable> in their <appinfo> annotation are indexed in eSearch and available for queries. Fields marked <searchable>false</searchable> (or without the annotation) are stored for retrieval via metadata.get and metadata.serve.

Indexing limit: Elasticsearch indexes up to 4 searchable Date fields and 4 searchable Integer fields per metadata profile. Fields beyond this limit are stored and retrievable via metadata.get, but only the first 4 of each type appear in eSearch results. Use text fields for dates and numbers that only need storage and retrieval.

Combine metadata search with entry fields and caption text in a single eSearch query. See eSearch API for multi-item operator syntax.