The Aspire GCS Publisher Google Cloud Search Publisher if made up of two main sets of components.
Complete the following steps in order to configure the Google Cloud Search Publisher.
Panel | ||
---|---|---|
| ||
|
The GCS Publisher expects an incoming Aspire Object that has these fields:
Please note that with the exception of boolean properties all other properties can be multi-valued. If an Aspire propery for the doc.structuredData holds any other type of value, other than those specfied above, the property will not be added with the document in the index.
For more info on the structure of an ACL in GCS please visit this link.
Example of a serialized Aspire Object that would work as an input to the GCS publisher:
{
"doc"
:{
"id"
:
"Chocolat",
"content"
:
"Awesome movie",
"metadata"
:{
"sourceRepositoryUrl"
:
"https:\/\/www.imdb.com\/title\/tt0241303\/",
"title"
:
"Chocolat",
"objectType"
:
"doc",
"contentLanguage"
:
"en",
"mimeType"
:
"plain\/text",
"keywords"
:[
"keyword1"
,
"keyword2"
],
"hash"
:
"asdfsdagwerew",
"searchQualityScore"
:
0.1,
"createTime"
:
"2018-08-29T05:42:23.226Z",
"updateTime"
:
"2018-08-29T05:42:23.226Z"
},
"structuredData"
:{
"actorName"
:[
"Johnny Depp"
,
"Juliette Binoche"
],
"movieTitle"
:
"Chocolat",
"mpaaRating"
:
"G",
"duration"
:
5,
"created"
:
"Wed Aug 29 06:42:23 IST 2018",
"releaseDate"
:
"2018-08-29T05:42:23.226Z",
"inTheaters"
:
true,
"yearsSinceRelease"
:
2.1
},
"enumsData"
:{
"genre"
:
"Drama"
},
"acls"
:{
"acl"
:[
{
"@access"
:
"allow",
"@entity"
:
"group",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#[email protected]"
},
{
"@access"
:
"allow",
"@entity"
:
"group",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#Actors"
},
{
"@access"
:
"allow",
"@entity"
:
"user",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#[email protected]"
},
{
"@access"
:
"allow",
"@entity"
:
"user",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#ralfaro"
},
{
"@access"
:
"deny",
"@entity"
:
"user",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#jroberts"
},
{
"@access"
:
"deny",
"@entity"
:
"user",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#jdepp",
"@identitySourceId"
:
"adde86161b95e302ca1bc4cb18d45d61"
},
{
"@access"
:
"deny",
"@entity"
:
"group",
"@principalType"
:
"CloudIdentity",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#[email protected]"
}
],
"parentAcl"
:[
{
"@access"
:
"allow",
"@entity"
:
"group",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#confluence-administrators"
},
{
"@access"
:
"allow",
"@entity"
:
"user",
"@name"
:
"421aa90e079fa326b6494f812ad13e79#confluence-prefix#admin"
}
]
},
"hierarchy"
:{
"item"
:{
"@id"
:
"childid2",
"@level"
:
"2",
"@name"
:
"Aspire",
"ancestors"
:{
"ancestor"
:{
"@id"
:
"parentid2",
"@level"
:
"1",
"@name"
:
"Aspire",
"@url"
:
"https:\/\/www.imdb.com\/title\/parent\/tt0241303\/"
}
}
}
},
"isContainer"
:
false,
"action"
:
"add"
}
}
See the TestIndexGcsPublisher unit test for an example of how to index/delete documents from a GCS index. The associated GCS schema can be found here.
The GCS Transformers are Aspire components that transform incoming Aspire Objects into output Aspire Object that comply to the requirements, needed for processing through the GCS Publisher.
The GCS Transformers are optional components and they are provided as an example of how to create other custom transformers specific to clients' projects needs.
The transformers can be added to a workflow as an Aspire application (it has the following Maven coordinates: com.searchtechnologies.aspire:app-gcs-transforms) before a GCS publisher.
The following transformers are implemented: