# Integration tests for Lang Python components # "Python 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: python script_fields: sNum1: lang: python 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: python params: param1: 1 script_fields: sNum1: lang: python 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: python params: param1: -1 script_fields: sNum1: lang: python 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 } --- "Python 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: python script: "_source['obj1']" s_obj1_test: lang: python script: "_source['obj1']['test']" s_obj2: lang: python script: "_source['obj2']" s_obj2_arr2: lang: python 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 } --- "Python 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": "python", "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": "python", "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": "python", "inline": "doc['num1'].value * _score.doubleValue()" } } }] - 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": "python", "inline": "param1 * param2 * _score.doubleValue()", "params": { "param1": 2, "param2": 2 } } } }] - match: { hits.total: 2 } --- "Python 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": "python", "inline": "1" } } }, { "script_score": { "script": { "lang": "python", "inline": "_score.doubleValue()" } } } ] "functions": [{ "script_score": { "script": { "lang": "python", "inline": "_score.doubleValue()" } } }] - match: { hits.total: 1 } - match: { hits.hits.0._score: 1.0 } --- "Python 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": "python", "inline": "_score.doubleValue()" } } }] aggs: score_agg: terms: script: lang: python 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 }