| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- # Integration tests for Lang JavaScript components
- #
- "JavaScript Query":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: { "test": "value beck", "num1": 1.0 }
- - do:
- index:
- index: test
- type: test
- id: 2
- body: { "test": "value beck", "num1": 2.0 }
- - do:
- index:
- index: test
- type: test
- id: 3
- body: { "test": "value beck", "num1": 3.0 }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- query:
- script:
- script:
- inline: "doc['num1'].value > 1"
- lang: js
- script_fields:
- sNum1:
- lang: js
- script: "doc['num1'].value"
- sort:
- num1:
- order: asc
- - match: { hits.total: 2 }
- - match: { hits.hits.0.fields.sNum1.0: 2.0 }
- - match: { hits.hits.1.fields.sNum1.0: 3.0 }
- - do:
- index: test
- search:
- body:
- query:
- script:
- script:
- inline: "doc['num1'].value > param1"
- lang: js
- params:
- param1: 1
- script_fields:
- sNum1:
- lang: js
- script: "doc['num1'].value"
- sort:
- num1:
- order: asc
- - match: { hits.total: 2 }
- - match: { hits.hits.0.fields.sNum1.0: 2.0 }
- - match: { hits.hits.1.fields.sNum1.0: 3.0 }
- - do:
- index: test
- search:
- body:
- query:
- script:
- script:
- inline: "doc['num1'].value > param1"
- lang: js
- params:
- param1: -1
- script_fields:
- sNum1:
- lang: js
- script: "doc['num1'].value"
- sort:
- num1:
- order: asc
- - match: { hits.total: 3 }
- - match: { hits.hits.0.fields.sNum1.0: 1.0 }
- - match: { hits.hits.1.fields.sNum1.0: 2.0 }
- - match: { hits.hits.2.fields.sNum1.0: 3.0 }
- ---
- "JavaScript Script Field Using Source":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: {
- "obj1": {
- "test": "something"
- },
- "obj2": {
- "arr2": [ "arr_value1", "arr_value2" ]
- }
- }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- script_fields:
- s_obj1:
- lang: js
- script: "_source.obj1"
- s_obj1_test:
- lang: js
- script: "_source.obj1.test"
- s_obj2:
- lang: js
- script: "_source.obj2"
- s_obj2_arr2:
- lang: js
- script: "_source.obj2.arr2"
- - match: { hits.total: 1 }
- - match: { hits.hits.0.fields.s_obj1.0.test: something }
- - match: { hits.hits.0.fields.s_obj1_test.0: something }
- - match: { hits.hits.0.fields.s_obj2.0.arr2.0: arr_value1 }
- - match: { hits.hits.0.fields.s_obj2.0.arr2.1: arr_value2 }
- - match: { hits.hits.0.fields.s_obj2_arr2.0: arr_value1 }
- - match: { hits.hits.0.fields.s_obj2_arr2.1: arr_value2 }
- ---
- "JavaScript Custom Script Boost":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: { "test": "value beck", "num1": 1.0 }
- - do:
- index:
- index: test
- type: test
- id: 2
- body: { "test": "value beck", "num1": 2.0 }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "doc['num1'].value"
- }
- }
- }]
- - match: { hits.total: 2 }
- - match: { hits.hits.0._id: "2" }
- - match: { hits.hits.1._id: "1" }
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "-doc['num1'].value"
- }
- }
- }]
- - match: { hits.total: 2 }
- - match: { hits.hits.0._id: "1" }
- - match: { hits.hits.1._id: "2" }
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "Math.pow(doc['num1'].value, 2)"
- }
- }
- }]
- - match: { hits.total: 2 }
- - match: { hits.hits.0._id: "2" }
- - match: { hits.hits.1._id: "1" }
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "Math.max(doc['num1'].value, 1)"
- }
- }
- }]
- - match: { hits.total: 2 }
- - match: { hits.hits.0._id: "2" }
- - match: { hits.hits.1._id: "1" }
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "doc['num1'].value * _score"
- }
- }
- }]
- - match: { hits.total: 2 }
- - match: { hits.hits.0._id: "2" }
- - match: { hits.hits.1._id: "1" }
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- term:
- test: value
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "param1 * param2 * _score",
- "params": {
- "param1": 2,
- "param2": 2
- }
- }
- }
- }]
- - match: { hits.total: 2 }
- ---
- "JavaScript Scores Nested":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: { "dummy_field": 1 }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- query:
- function_score:
- "functions": [
- {
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "1"
- }
- }
- }, {
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "_score.doubleValue()"
- }
- }
- }
- ]
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "_score.doubleValue()"
- }
- }
- }]
- - match: { hits.total: 1 }
- - match: { hits.hits.0._score: 1.0 }
- ---
- "JavaScript Scores With Agg":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: { "dummy_field": 1 }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- query:
- function_score:
- "functions": [{
- "script_score": {
- "script": {
- "lang": "js",
- "inline": "_score.doubleValue()"
- }
- }
- }]
- aggs:
- score_agg:
- terms:
- script:
- lang: js
- inline: "_score.doubleValue()"
- - match: { hits.total: 1 }
- - match: { hits.hits.0._score: 1.0 }
- - match: { aggregations.score_agg.buckets.0.key: "1.0" }
- - match: { aggregations.score_agg.buckets.0.doc_count: 1 }
- ---
- "JavaScript Use List Length In Scripts":
- - do:
- index:
- index: test
- type: test
- id: 1
- body: { "f": 42 }
- - do:
- indices.refresh: {}
- - do:
- index: test
- search:
- body:
- script_fields:
- foobar:
- lang: js
- script: "doc['f'].values.length"
- - match: { hits.total: 1 }
- - match: { hits.hits.0.fields.foobar.0: 1 }
|