Skip to main content
The JavaScript Query stage allows you to write custom processing logic using JavaScript to manipulate search requests and responses. The first time that the pipeline is run, Fusion compiles the JavaScript program into Java bytecode using the JDK’s JavaScript engine. The JavaScript Query stage allows you to run JavaScript functions over search requests and responses by manipulating variables called “request” and “response” which are Request objects and Response objects, respectively.
If you are running more than 50 JavaScript query pipelines stages, you might experience performance issues when refreshing a query pipeline.

JavaScript Stages Variables and Parameters

JavaScript is a lightweight scripting language. The JavaScript in a JavaScript stage is standard ECMAScript. What a JavaScript program can do depends on the container in which it runs. For a JavaScript Query stage, the container is a Fusion query pipeline. The following global pipeline variables are available:

Syntax Variants

JavaScript stages are written using function syntax, which passes variables as function parameters.

Function Syntax

ImportantFunction syntax is used for the examples in this document.

Global variable logger

The global variable named logger writes messages to the log file of the server running the pipeline. This variable is truly global and does not need to be declared as part of the function parameter list. There are 5 methods available, which each take either a single argument (the string message to log) or two arguments (the string message and an exception to log). The five methods are, “debug”, “info”, “warn”, and “error”.

Configuration

When entering configuration values in the UI, use unescaped characters, such as \t for the tab character. When entering configuration values in the API, use escaped characters, such as \\t for the tab character.