40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
|
[[java-query-dsl-script-query]]
|
||
|
==== Script Query
|
||
|
|
||
|
See {ref}/query-dsl-script-query.html[Script Query]
|
||
|
|
||
|
[source,java]
|
||
|
--------------------------------------------------
|
||
|
QueryBuilder qb = scriptQuery(
|
||
|
new Script("doc['num1'].value > 1") <1>
|
||
|
);
|
||
|
--------------------------------------------------
|
||
|
<1> inlined script
|
||
|
|
||
|
|
||
|
If you have stored on each data node a script named `mygroovyscript.groovy` with:
|
||
|
|
||
|
[source,groovy]
|
||
|
--------------------------------------------------
|
||
|
doc['num1'].value > param1
|
||
|
--------------------------------------------------
|
||
|
|
||
|
You can use it then with:
|
||
|
|
||
|
[source,java]
|
||
|
--------------------------------------------------
|
||
|
QueryBuilder qb = scriptQuery(
|
||
|
new Script(
|
||
|
"mygroovyscript", <1>
|
||
|
ScriptService.ScriptType.FILE, <2>
|
||
|
"groovy", <3>
|
||
|
ImmutableMap.of("param1", 5)) <4>
|
||
|
);
|
||
|
--------------------------------------------------
|
||
|
<1> Script name
|
||
|
<2> Script type: either `ScriptType.FILE`, `ScriptType.INLINE` or `ScriptType.INDEXED`
|
||
|
<3> Scripting engine
|
||
|
<4> Parameters as a `Map` of `<String, Object>`
|
||
|
|
||
|
æ
|