2014-01-15 06:28:20 -05:00
|
|
|
JavaScript lang Plugin for Elasticsearch
|
2011-12-05 10:23:33 -05:00
|
|
|
==================================
|
|
|
|
|
2014-03-07 09:48:49 -05:00
|
|
|
The JavaScript language plugin allows to have `javascript` (or `js`) as the language of scripts to execute.
|
2011-12-05 10:23:33 -05:00
|
|
|
|
2014-01-15 12:45:46 -05:00
|
|
|
In order to install the plugin, simply run: `bin/plugin -install elasticsearch/elasticsearch-lang-javascript/2.0.0.RC1`.
|
2013-06-05 10:53:10 -04:00
|
|
|
|
2014-03-07 09:41:46 -05:00
|
|
|
* For 1.0.x elasticsearch versions, look at [master branch](https://github.com/elasticsearch/elasticsearch-lang-javascript/tree/master).
|
|
|
|
* For 0.90.x elasticsearch versions, look at [1.x branch](https://github.com/elasticsearch/elasticsearch-lang-javascript/tree/1.x).
|
|
|
|
|
2014-01-15 06:28:20 -05:00
|
|
|
| JavaScript Lang Plugin | elasticsearch | rhino | Release date |
|
|
|
|
|-----------------------------|---------------------|----------|:------------:|
|
2014-03-07 09:41:46 -05:00
|
|
|
| 2.0.0-SNAPSHOT | 1.0.0.RC1 -> master | 1.7R4 | XXXX-XX-XX |
|
2014-01-15 12:45:46 -05:00
|
|
|
| 2.0.0.RC1 | 1.0.0.RC1 -> master | 1.7R4 | 2014-01-15 |
|
2011-12-05 10:23:33 -05:00
|
|
|
|
2014-03-07 10:40:46 -05:00
|
|
|
Using javascript with function_score
|
|
|
|
------------------------------------
|
|
|
|
|
|
|
|
Let's say you want to use `function_score` API using `javascript`. Here is
|
|
|
|
a way of doing it:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -XDELETE "http://localhost:9200/test"
|
|
|
|
|
|
|
|
curl -XPUT "http://localhost:9200/test/doc/1" -d '{
|
|
|
|
"num": 1.0
|
|
|
|
}'
|
|
|
|
|
|
|
|
curl -XPUT "http://localhost:9200/test/doc/2?refresh" -d '{
|
|
|
|
"num": 2.0
|
|
|
|
}'
|
|
|
|
|
|
|
|
curl -XGET "http://localhost:9200/test/_search?pretty" -d '
|
|
|
|
{
|
|
|
|
"query": {
|
|
|
|
"function_score": {
|
|
|
|
"script_score": {
|
|
|
|
"script": "doc[\"num\"].value",
|
|
|
|
"lang": "javascript"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}'
|
|
|
|
```
|
|
|
|
|
|
|
|
gives
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
{
|
|
|
|
// ...
|
|
|
|
"hits": {
|
|
|
|
"total": 2,
|
|
|
|
"max_score": 4,
|
|
|
|
"hits": [
|
|
|
|
{
|
|
|
|
// ...
|
|
|
|
"_score": 4
|
|
|
|
},
|
|
|
|
{
|
|
|
|
// ...
|
|
|
|
"_score": 1
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Using javascript with script_fields
|
|
|
|
-----------------------------------
|
|
|
|
|
|
|
|
```sh
|
|
|
|
curl -XDELETE "http://localhost:9200/test"
|
|
|
|
|
|
|
|
curl -XPUT "http://localhost:9200/test/doc/1?refresh" -d'
|
|
|
|
{
|
|
|
|
"obj1": {
|
|
|
|
"test": "something"
|
|
|
|
},
|
|
|
|
"obj2": {
|
|
|
|
"arr2": [ "arr_value1", "arr_value2" ]
|
|
|
|
}
|
|
|
|
}'
|
|
|
|
|
|
|
|
curl -XGET "http://localhost:9200/test/_search" -d'
|
|
|
|
{
|
|
|
|
"script_fields": {
|
|
|
|
"s_obj1": {
|
|
|
|
"script": "_source.obj1", "lang": "js"
|
|
|
|
},
|
|
|
|
"s_obj1_test": {
|
|
|
|
"script": "_source.obj1.test", "lang": "js"
|
|
|
|
},
|
|
|
|
"s_obj2": {
|
|
|
|
"script": "_source.obj2", "lang": "js"
|
|
|
|
},
|
|
|
|
"s_obj2_arr2": {
|
|
|
|
"script": "_source.obj2.arr2", "lang": "js"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}'
|
|
|
|
```
|
|
|
|
|
|
|
|
gives
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
{
|
|
|
|
// ...
|
|
|
|
"hits": [
|
|
|
|
{
|
|
|
|
// ...
|
|
|
|
"fields": {
|
|
|
|
"s_obj2_arr2": [
|
|
|
|
[
|
|
|
|
"arr_value1",
|
|
|
|
"arr_value2"
|
|
|
|
]
|
|
|
|
],
|
|
|
|
"s_obj1_test": [
|
|
|
|
"something"
|
|
|
|
],
|
|
|
|
"s_obj2": [
|
|
|
|
{
|
|
|
|
"arr2": [
|
|
|
|
"arr_value1",
|
|
|
|
"arr_value2"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"s_obj1": [
|
|
|
|
{
|
|
|
|
"test": "something"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2012-06-10 16:11:21 -04:00
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
This software is licensed under the Apache 2 license, quoted below.
|
|
|
|
|
2014-01-15 06:28:20 -05:00
|
|
|
Copyright 2009-2014 Elasticsearch <http://www.elasticsearch.org>
|
2012-06-10 16:11:21 -04:00
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
|
|
use this file except in compliance with the License. You may obtain a copy of
|
|
|
|
the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
License for the specific language governing permissions and limitations under
|
|
|
|
the License.
|