Skip to main content

match

This processor encapsulates the matcher of ts-transforms. This does not do any transformations on the data, it just returns any matched data

To use this processor, it requires a file containing all match rules that is will be preforming and any necessary plugins that those rules require to operate.

Usage

Matching records using ts-transforms match rules

Below is an example of xLucene match rules and the configuration needed to match expression to documents.

Example Job

{
"name" : "testing",
"workers" : 1,
"slicers" : 1,
"lifecycle" : "once",
"assets" : [
"standard"
],
"operations" : [
{
"_op": "test-reader"
},
{
"_op": "match",
"plugins": ["someAssetId:plugins"],
"rules": ["someAssetId:transformRules.txt"],
"type_config": {
"some": "string",
"field": "string",
"field2": "string",
"date": "date",
"location": "geo-point"
},
"variables": {
"foo": "data"
}
}
]
}

Example xLucene rules located at someAssetId:matchRules.txt

some:data AND bytes:>=1000
other:/.*abc.*/ OR _created:>=2018-11-16T15:16:09.076Z

Here is a representation of what the processor will do with the configuration listed in the job above


const data = [
{ some: 'data', bytes: 1200 },
{ some: 'data', bytes: 200 },
{ some: 'other', bytes: 1200 },
{ other: 'xabcd' },
{ _created: '2018-12-16T15:16:09.076Z' }
]

const results = await processor.run(data);

results === [
{ some: 'data', bytes: 1200 },
{ other: 'xabcd' },
{ _created: '2018-12-16T15:16:09.076Z' }
];

Parameters

ConfigurationDescriptionTypeNotes
_opName of operation, it must reflect the exact name of the fileStringrequired
rulesan array of strings that are the locations where rule files. must be specified in "assetName:path" formatString[]required
pluginsan array of strings that are the locations where plugins reside. must be specified in "assetName:modulePath" formatObject[]optional, defaults to []
type_configa schema for the data being consumed. Set the keys to your data field names, with values set to this enumObjectoptional
variablesAn object containing any variables for the xlucene rulesObjectoptional