You can switch to Lucene "expression" language to access score.

The example in the docs is a bit unfortunate, as it uses MVEL, which has to
be enabled in ES 1.3 explicitly.

Here is a modified example I made using the "expression" language:

https://gist.github.com/jprante/7a1763c7073f2b8084a6

Jörg



On Thu, Jul 24, 2014 at 6:22 PM, Daniel Yim <[email protected]> wrote:

> Thanks, Rafal. The *top_hits *aggregator is working now, but could you
> explain why this is a security risk? We will need to use this feature in
> production and now I am feeling uneasy about it.
>
>
> On Thursday, July 24, 2014 10:28:32 AM UTC-5, Rafał Kuć wrote:
>
>>  Hello!
>>
>> The error is about scripting and dynamic scripting being disabled for
>> MVEL. The simplest way to make it work is turning on dynamic scripting by
>> adding script.disable_dynamic: false to your elasticsearch.yml file.
>> However for production it is not recommended for security reasons. You can
>> also try using scripting language that is sandboxed and allows for dynamic
>> scripting, like groovy.
>>
>>
>>
>>
>>
>> *-- Regards, Rafał Kuć Performance Monitoring * Log Analytics * Search
>> Analytics Solr & Elasticsearch Support * *http://sematext.com/
>>
>>
>>
>>  Hello, I am trying to follow the field collapse example
>> <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example>
>> on this page
>> <http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example>
>> , which uses the new 1.3.0 *top_hits* aggregator to return the top
>> scoring document for a given criteria. To my knowledge, I set up the
>> settings and mappings correctly, but I am getting a strange error when I
>> try to run the query that the example provided.
>>
>>
>> curl -XDELETE "http://localhost:9200/personsearch";
>> curl -XPUT "http://localhost:9200/personsearch"; -d'
>> {
>>  "settings": {
>>    "index": {
>>      "analysis": {
>>        "analyzer": {
>>          "idx_analyzer": {
>>            "tokenizer": "whitespace",
>>            "filter": [
>>              "lowercase",
>>              "snowball",
>>              "XYZSynFilter"
>>            ]
>>          },
>>          "sch_analyzer": {
>>            "tokenizer": "standard",
>>            "filter": [
>>              "standard",
>>              "lowercase",
>>              "stop"
>>            ]
>>          },
>>          "sch_comma_analyzer": {
>>            "tokenizer": "CommaTokenizer",
>>            "filter": [
>>              "standard",
>>              "lowercase",
>>              "stop"
>>            ]
>>          }
>>        },
>>        "filter": {
>>          "XYZSynFilter": {
>>            "type": "synonym",
>>            "synonyms": [
>>              "aids virus, aids, retrovirology, hiv"
>>            ],
>>            "expand": true,
>>            "ignore_case": true
>>          }
>>        },
>>        "tokenizer": {
>>          "CommaTokenizer": {
>>            "type": "pattern",
>>            "pattern": ","
>>          }
>>        }
>>      }
>>    }
>>  },
>>  "mappings": {
>>    "employees": {
>>      "properties": {
>>        "fullName": {
>>          "type": "string",
>>          "search_analyzer": "sch_analyzer"
>>        },
>>        "specialty": {
>>          "type": "string",
>>          "search_analyzer": "sch_comma_analyzer"
>>        }
>>      }
>>    }
>>  }
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/1"; -d'
>> {
>>  "fullName": "Don White",
>>  "specialty": "Adult Retrovirology, aids, hiv"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/2"; -d'
>> {
>>  "fullName": "Don White",
>>  "specialty": "general practitioner, physician, general, primary care"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/3"; -d'
>> {
>>  "fullName": "Don White",
>>  "specialty": "icu, er"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/4"; -d'
>> {
>>  "fullName": "Terrance Gartner",
>>  "specialty": "oncology, cancer, research, tumor, polyp"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/5"; -d'
>> {
>>  "fullName": "Terrance Gartner",
>>  "specialty": "physician, general, GP, primary care, aids"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/6"; -d'
>> {
>>  "fullName": "Terrance Gartner",
>>  "specialty": "emergency care, icu, ambulance, er, urgent"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/7"; -d'
>> {
>>  "fullName": "Carter Taylor",
>>  "specialty": "neurosurgery, brain surgery, brain tumor"
>> }'
>> curl -XPUT "http://localhost:9200/personsearch/employees/8"; -d'
>> {
>>  "fullName": "Carter Taylor",
>>  "specialty": "trauma, icu, emergency care, ER, urgent care"
>> }'
>>
>>
>> Executing this search (per the example) gives me an error
>> curl -XGET "http://localhost:9200/personsearch/employees/_
>> search?pretty=true" -d'
>> {
>>  "query": {
>>    "query_string": {
>>      "query": "icu"
>>    }
>>  },
>>  "aggs": {
>>    "most-rel-profile": {
>>      "terms": {
>>        "field": "profileName",
>>        "order": {
>>          "top_hit": "desc"
>>        }
>>      },
>>      "aggs": {
>>        "top_tags_hits": {
>>          "top_hits": {}
>>        },
>>        "top_hit": {
>>          "max": {
>>            "script": "_doc.score"
>>          }
>>        }
>>      }
>>    }
>>  }
>> }'
>>
>>
>>
>> {
>>   "error": "SearchPhaseExecutionException[Failed to execute phase
>> [query], all shards failed; shardFailures 
>> {[4gtV_OJESWWSgMnbTruKyA][personsearch][0]:
>> SearchParseException[[personsearch][0]: query[_all:icu],from[-1],size[-1]:
>> Parse Failure [Failed to parse source [{\n  \"query\": {\n
>>  \"query_string\": {\n      \"query\": \"icu\"\n    }\n  },\n  \"aggs\":
>> {\n    \"most-rel-profile\": {\n      \"terms\": {\n        \"field\":
>> \"profileName\",\n        \"order\": {\n          \"top_hit\": \"desc\"\n
>>      }\n      },\n      \"aggs\": {\n        \"top_tags_hits\": {\n
>>  \"top_hits\": {}\n        },\n        \"top_hit\": {\n          \"max\":
>> {\n            \"script\": \"_doc.score\"\n          }\n        }\n
>>  }\n    }\n  }\n}\n]]]; nested: ScriptException[dynamic scripting for
>> [mvel] disabled]; }{[4gtV_OJESWWSgMnbTruKyA][personsearch][1]:
>> SearchParseException[[personsearch][1]: query[_all:icu],from[-1],size[-1]:
>> Parse Failure [Failed to parse source [{\n  \"query\": {\n
>>  \"query_string\": {\n      \"query\": \"icu\"\n    }\n  },\n  \"aggs\":
>> {\n    \"most-rel-profile\": {\n      \"terms\": {\n        \"field\":
>> \"profileName\",\n        \"order\": {\n          \"top_hit\": \"desc\"\n
>>      }\n      },\n      \"aggs\": {\n        \"top_tags_hits\": {\n
>>  \"top_hits\": {}\n        },\n        \"top_hit\": {\n          \"max\":
>> {\n            \"script\": \"_doc.score\"\n          }\n        }\n
>>  }\n    }\n  }\n}\n]]]; nested: ScriptException[dynamic scripting for
>> [mvel] disabled]; }{[4gtV_OJESWWSgMnbTruKyA][personsearch][2]:
>> SearchParseException[[personsearch][2]: query[_all:icu],from[-1],size[-1]:
>> Parse Failure [Failed to parse source [{\n  \"query\": {\n
>>  \"query_string\": {\n      \"query\": \"icu\"\n    }\n  },\n  \"aggs\":
>> {\n    \"most-rel-profile\": {\n      \"terms\": {\n        \"field\":
>> \"profileName\",\n        \"order\": {\n          \"top_hit\": \"desc\"\n
>>      }\n      },\n      \"aggs\": {\n        \"top_tags_hits\": {\n
>>  \"top_hits\": {}\n        },\n        \"top_hit\": {\n          \"max\":
>> {\n            \"script\": \"_doc.score\"\n          }\n        }\n
>>  }\n    }\n  }\n}\n]]]; nested: ScriptException[dynamic scripting for
>> [mvel] disabled]; }{[4gtV_OJESWWSgMnbTruKyA][personsearch][3]:
>> SearchParseException[[personsearch][3]: query[_all:icu],from[-1],size[-1]:
>> Parse Failure [Failed to parse source [{\n  \"query\": {\n
>>  \"query_string\": {\n      \"query\": \"icu\"\n    }\n  },\n  \"aggs\":
>> {\n    \"most-rel-profile\": {\n      \"terms\": {\n        \"field\":
>> \"profileName\",\n        \"order\": {\n          \"top_hit\": \"desc\"\n
>>      }\n      },\n      \"aggs\": {\n        \"top_tags_hits\": {\n
>>  \"top_hits\": {}\n        },\n        \"top_hit\": {\n          \"max\":
>> {\n            \"script\": \"_doc.score\"\n          }\n        }\n
>>  }\n    }\n  }\n}\n]]]; nested: ScriptException[dynamic scripting for
>> [mvel] disabled]; }{[4gtV_OJESWWSgMnbTruKyA][personsearch][4]:
>> SearchParseException[[personsearch][4]: query[_all:icu],from[-1],size[-1]:
>> Parse Failure [Failed to parse source [{\n  \"query\": {\n
>>  \"query_string\": {\n      \"query\": \"icu\"\n    }\n  },\n  \"aggs\":
>> {\n    \"most-rel-profile\": {\n      \"terms\": {\n        \"field\":
>> \"profileName\",\n        \"order\": {\n          \"top_hit\": \"desc\"\n
>>      }\n      },\n      \"aggs\": {\n        \"top_tags_hits\": {\n
>>  \"top_hits\": {}\n        },\n        \"top_hit\": {\n          \"max\":
>> {\n            \"script\": \"_doc.score\"\n          }\n        }\n
>>  }\n    }\n  }\n}\n]]]; nested:* ScriptException[dynamic scripting for
>> [mvel] disabled];* }]",
>>   "status": 400
>> }
>>
>>
>> Does the *dynamic scripting for [mvel] disabled* have something to do
>> with it?
>>
>>
>> Thanks.
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elasticsearch" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elasticsearch/79c1fff8-
>> 78a4-4419-a87d-e39ec3148fcf%40googlegroups.com
>> <https://groups.google.com/d/msgid/elasticsearch/79c1fff8-78a4-4419-a87d-e39ec3148fcf%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/43346d99-6385-4a24-bd8e-8e7482f39a36%40googlegroups.com
> <https://groups.google.com/d/msgid/elasticsearch/43346d99-6385-4a24-bd8e-8e7482f39a36%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAKdsXoFhAzKExHojqtOD%3D9R-vZCOjuY8UfQdu0FJ8Z1rUjwN_A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to