我可以访问javascript转换器中的solr dataimporter.request变量吗

我可以访问javascript转换器中的solr dataimporter.request变量吗,javascript,solr,dataimporthandler,transformer,dih,Javascript,Solr,Dataimporthandler,Transformer,Dih,我有一个dataconfig.xml文件,它从Oracle数据库收集数据。在Datasource元素中,我使用了${dataimporter.request.dbname}等变量,这些变量成功地返回了我通过dataimport url传递的自定义值 现在,我在同一个dataconfig文件中编写了一个javascript转换器,用于在多值字段中添加值,其中包括数据库名称。是否可以从javascript转换器中引用变量${dataimporter.request.dbname}?如果是,正确的语法

我有一个dataconfig.xml文件,它从Oracle数据库收集数据。在Datasource元素中,我使用了${dataimporter.request.dbname}等变量,这些变量成功地返回了我通过dataimport url传递的自定义值

现在,我在同一个dataconfig文件中编写了一个javascript转换器,用于在多值字段中添加值,其中包括数据库名称。是否可以从javascript转换器中引用变量${dataimporter.request.dbname}?如果是,正确的语法是什么

这是我尝试过的,但dbname没有填充:

function relatedItems(row) {
    var relatedItemsArray = new java.util.ArrayList();
    var dbname=${dataimporter.request.db_name};
    relatedItemsArray.add('type=DOCUMENT;datasource:PB||' + dbname);
    row.put('relation', relatedItemsArray);
    return row;
  }
非常感谢您的帮助


提前谢谢。

我自己也有这个问题。。。这个问题很老,但为了以防万一,我就是这样将上下文变量传递给数据导入处理程序中的脚本的:

<entity name="fileline" processor="LineEntityProcessor" url="${filelist.fileAbsolutePath}" format="text" transformer="TemplateTransformer,script:relatedItems">
<field column="dbname" template="${dataimporter.request.db_name}"/>
</entity>

您可以通过这种方式访问额外变量。这似乎有点复杂,但这是我能找到的最好的方法(这很有效!)。

您可以从请求上下文中的dataimport调用访问请求参数,该调用对脚本可用,与“行”相同

function myScript(row, context) {
  var dbName = context.getRequestParameters().get('db_name');
  ...
}
function myScript(row, context) {
  var dbName = context.getRequestParameters().get('db_name');
  ...
}