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 elasticsearc...@googlegroups.com <javascript:>. > 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 elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/43346d99-6385-4a24-bd8e-8e7482f39a36%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.