Date: Thu, 28 Mar 2024 10:20:11 -0400 (EDT) Message-ID: <1456186976.27851.1711635611817@lyrasis1-roc-mp1> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_27850_1439207937.1711635611817" ------=_Part_27850_1439207937.1711635611817 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
The fcrepo-camel-toolbox proj= ect includes a number of production-ready services that can be used to inte= grate Fedora with external systems, such as Solr or a Triplestore.
All of these services can be deployed in an OSGi container such as Karaf= . Deployment and configuration instructions are available in the associated= README files.
The solr=
indexer uses the LDPath service to convert RDF documents to JSON. A default tra=
nsformation program can be specified in the service configuration (e.g. default
or myTrans=
formation
). It is also possible to override the default transformati=
on program by assigning an RDF property to particular documents: <=
> indexing:hasIndexingTransformation "specialTransform"
. Furtherm=
ore, one can choose to index only certain documents from the repository. By=
identifying certain documents as <> a indexing:Indexable
and enabling the indexable.predicate
configuration value, on=
ly those resources will be indexed. (For Tomcat/Jetty-deployed applications=
, this can be enabled by setting JAVA_OPTS=3D"-Dfcrepo.onlyIndexableO=
bjects=3Dtrue"
)
The triplestore indexing service runs just like the Solr Indexing servic=
e, pushing all changes from the repository into an external triplestore. Fu=
seki, Sesame and BlazeGraph have been used successfully with this service. =
Like with the Solr Indexing service, it is possible to identify certain obj=
ects as "Indexable" by setting an rdf:type as indexing:Indexable. (One must also enable this filtering, as described above).
Periodically, it may be necessary to reindex some or all of a repository=
. In certain cases, one may wish to re-index only Solr, only the Triplestor=
e, or both. The reindexing service exposes a RESTful endpoint where it is p=
ossible to initiate these sorts of reindexing processes. By default, the re=
indexing service exposes an HTTP endpoint at localhost:9080/reindexin=
g
(to change this, see the documentation). That endpoint accepts JSON document=
s like so:
curl -X= POST localhost:9080/reindexing/objects -H"Content-Type: application/json" \ -d '["activemq:queue:solr.reindex","activemq:queue:triplestore.reindex"= ]'
This will reindex both Solr and the external triplestore, starting at th=
e /objects
node in Fedora. To start at the root node in Fedora=
, you would POST to localhost:9080/reindexing/
, while to start=
at the node /a/b/c/d
, you would POST to localhost:=
9080/reindexing/a/b/c/d
The values in the JSON array are used to determine which endpoints to re= index.
By sending a GET request to the reindexing service, you will retrieve a = short summary of its usage.
The serialization service allows objects in Fedora to be written to a sp= ecified disk location in any MIME type Fedora supports. One can decid= e whether or not to include binaries in the serialization, but keep in mind= that they may take up a considerable amount of disk space.
When this service is enabled, it will write any new or changed object's = description to disk. It listens to Fedora and only operates on object= s that have been created, modified or deleted. If an object was creat= ed before this service was enabled and is unchanged, it will not be written= to disk. This service exposes an activemq queue for initiating seria= lization of Fedora objects that might not otherwise get written to disk. &n= bsp;
If an object is deleted from Fedora, the serialized description and/or b= inary will be removed as well.
For more details see: https://github.com/fcrepo4-exts/fcrepo-camel-toolbox/tre= e/master/fcrepo-serialization