Write a Lua Script
A Lua script that is run from a connector must have the following structure:
function handler(config, document, params) ... end
The handler function is called for each document and is passed the following arguments:
| Argument | Description |
|---|---|
config
|
A LuaConfig object that you can use to retrieve the values of configuration parameters from the connector’s configuration file. |
document
|
A LuaDocument object. The document object is an internal representation of the document being processed. Modifying this object changes the document. |
params
|
The
|
For the connector to continue processing the document, the handler function must return true. If the function returns false, the document is discarded.
The following script demonstrates how you can use the config and params arguments:
function handler(config, document, params)
-- Write all of the additional information to a log file
for k,v in pairs(params) do
log("logfile.txt", k..": "..tostring(v))
end
-- The following lines set variables from the params argument
type = params["TYPE"]
section = params["SECTION"]
filename = params["FILENAME"]
-- Read a configuration parameter from the configuration file
-- If the parameter is not set, "DefaultValue" is returned
val = config:getValue(section, "Parameter", "DefaultValue")
-- If the document is not being deleted, set the field FieldName
-- to the value of the configuration parameter
if type ~= "DELETE" then
document:setFieldValue("FieldName", val)
end
-- If the document has a file (that is, not just metadata),
-- copy the file to a new location and write a stub idx file
-- containing the metadata.
if filename ~= "" then
copytofilename = "./out/"..create_uuid(filename)
copy_file(filename, copytofilename)
document:writeStubIdx(copytofilename..".idx")
end
return true
end
TIP: You can write a library of useful functions to share between multiple scripts. To include a library of functions in a script, add the code dofile("library.lua") to the top of the lua script, outside of the handler function.