Hey all,
I’m running v6.3.0. I’ve been trying to configure a Jython ScriptTransformer in
my data-config.xml (pulls from JdbcDataSource). But when I run the full import,
it tries to interpret the script as JavaScript, even though I added the
language=Jython attribute to the <script> tag. I’ve also added a <lib> element
in solrconfig.xml for my core that references the Jython jar.
Based on my settings below, can you tell if I’m missing anything?
This is the relevant element in solrconfig.xml:
<lib path="${solr.install.dir:../../../..}/dist/jython-standalone-2.7.0.jar"
/>
This is the specific error I’m getting:
Exception while processing: cassini_issEdrs_data document :
SolrInputDocument(fields:
[]):org.apache.solr.handler.dataimport.DataImportHandlerException: 'eval'
failed with language: JavaScript and script:
import os.path
def checkIfAutonavOverlayExists(row):
fileName = row.get('FILE_NAME')
myFile = Path('/Users/kgrimes/Downloads/autonav-overlays/' +
fileName + '_autonav.jpg')
if myFile.is_file():
row.put('OVERLAY_URL',
'/Users/kgrimes/Downloads/autonav-overlays/' + fileName + '_autonav.jpg')
else:
row.put('OVERLAY_URL', None) Processing Document # 1
at
org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:69)
at
org.apache.solr.handler.dataimport.ScriptTransformer.initEngine(ScriptTransformer.java:89)
at
org.apache.solr.handler.dataimport.ScriptTransformer.transformRow(ScriptTransformer.java:52)
at
org.apache.solr.handler.dataimport.EntityProcessorWrapper.applyTransformer(EntityProcessorWrapper.java:199)
at
org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:257)
at
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:475)
at
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414)
at
org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
at
org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232)
at
org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416)
at
org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:475)
at
org.apache.solr.handler.dataimport.DataImporter.lambda$runAsync$0(DataImporter.java:458)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.script.ScriptException: <eval>:1:0 Expected an operand but
found import
import os.path
^ in <eval> at line number 1 at column number 0
at
jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467)
at
jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:534)
at
jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:521)
at
jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:399)
at
jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at
org.apache.solr.handler.dataimport.ScriptTransformer.initEngine(ScriptTransformer.java:87)
... 11 more
Caused by: jdk.nashorn.internal.runtime.ParserException: <eval>:1:0 Expected an
operand but found import
import os.path
^
at
jdk.nashorn.internal.parser.AbstractParser.error(AbstractParser.java:292)
at
jdk.nashorn.internal.parser.AbstractParser.error(AbstractParser.java:277)
at jdk.nashorn.internal.parser.Parser.unaryExpression(Parser.java:3182)
at jdk.nashorn.internal.parser.Parser.expression(Parser.java:3282)
at
jdk.nashorn.internal.parser.Parser.expressionStatement(Parser.java:1150)
at jdk.nashorn.internal.parser.Parser.statement(Parser.java:967)
at jdk.nashorn.internal.parser.Parser.sourceElements(Parser.java:773)
at jdk.nashorn.internal.parser.Parser.program(Parser.java:709)
at jdk.nashorn.internal.parser.Parser.parse(Parser.java:283)
at jdk.nashorn.internal.parser.Parser.parse(Parser.java:249)
at jdk.nashorn.internal.runtime.Context.compile(Context.java:1286)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:1253)
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:625)
at
jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:532)
... 16 more
Thanks,
Kevin