corpusFields are computed after documents loading/synchronizing.
They are used to compute metrics on the whold corpus (hence, the name).
For example, to get the number of documents in the corpus:
"corpusFields": {
"$filmsNb": {
"visible": true,
"label" : "films",
"icon" : "hand-o-right",
"$?" : "local:///-/v2/compute.json?operator=count&field=wid",
"parseJSON": true,
"get" : "data.0.value",
"cast" : "number"
},
The filmsNb corpusFields above is visible on the dashboard page, the
label displayed after its value is "films", the icon at its left is a
hand-o-right
from font-awesome.
From "$?" on, the properties are JBJ actions.
That "$?" action (with local: protocol) means that the remaining actions
will be applied to the result of the /compute route of ezvis, using the
count operator
on the wid field.
It's a source using the
local protocol, which is a shortcut to http://localhost:port (useful
because the port number is not always known before the launch of the server).
This one could return a page like:
{
template: "compute.html",
url: {
protocol: "http:",
slashes: true,
auth: null,
host: "localhost:3000",
port: "3000",
hostname: "localhost",
hash: null,
search: "?operator=count&field=wid",
query: "operator=count&field=wid",
pathname: "/-/v2/compute.json",
path: "/-/v2/compute.json?operator=count&field=wid",
href: "http://localhost:3000/-/v2/compute.json?operator=count&field=wid"
},
parameters: {
field: [
"wid"
],
operator: "count",
selector: null,
query: null,
itemsPerPage: 30,
startIndex: 0,
startPage: null,
search: null,
order: [
null
],
columns: [
null
],
flying: [
null
],
resource: "data5"
},
headers: {
Content-Type: "application/json"
},
recordsTotal: 1,
recordsFiltered: 1,
data: [{
_id: "wid",
value: 29
}]
}
This page is a text, containing JSON. You have to parse it, using
"parseJSON": true, then get the value #0 of the data array, using the
get action and the dot notation: data.0.value (it's the object-path
notation, see
the examples).
Tip: You can transform a
local:///-/v2/compute.json?operator=count&field=widintohttp://localhost:3000/-/v2/compute.json?operator=count&field=widand copy-paste its content into the input area of the JBJ Playground, and try to enter in the stylesheet area the JBJ actions you want to test, and click "Try it" to see if the result matches what you want in the corpusField.Note: versions 6.8.0 and previous ones used URL like
http://localhost:3000/-/v2/compute.json?operator=count&field=wid(without-/v2/at the beginning). This applies tolocal:///protocol too.