[ https://issues.apache.org/jira/browse/METRON-1811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16642365#comment-16642365 ]
ASF GitHub Bot commented on METRON-1811: ---------------------------------------- GitHub user merrimanr opened a pull request: https://github.com/apache/metron/pull/1231 METRON-1811: Alert Search Fails When Sorting by Alert Status ## Contributor Comments This PR fixes sorting on the `alert_status` field in the Alerts UI by defining the field in ES templates as a `keyword` type. The change was applied to the sensor templates that ship with Metron: bro, snort and yaf. This field was added to the Solr schemas as well. I also updated our documentation to give users guidance when defining their own templates or upgrading their templates. I expanded this to include other internal fields like `source:type` and `metron_alert`. I did not include dynamic fields but I can add documentation for that here if it makes sense. ### Testing This has been tested in full dev: 1. Spin up full dev and navigate to the Alerts UI. 2. Change the status of a couple alerts by opening up their details panel and clicking a different status (OPEN for example). 3. Sort by `alert_status`. The Alerts UI should properly display alerts by `alert_status` and no errors should be reported in the console. 4. Enable Solr and verify data is visible in the Alerts UI. Repeat steps 2 and 3. ## Pull Request Checklist Thank you for submitting a contribution to Apache Metron. Please refer to our [Development Guidelines](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61332235) for the complete guide to follow for contributions. Please refer also to our [Build Verification Guidelines](https://cwiki.apache.org/confluence/display/METRON/Verifying+Builds?show-miniview) for complete smoke testing guides. In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following: ### For all changes: - [x] Is there a JIRA ticket associated with this PR? If not one needs to be created at [Metron Jira](https://issues.apache.org/jira/browse/METRON/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel). - [x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [x] Has your PR been rebased against the latest commit within the target branch (typically master)? ### For code changes: - [x] Have you included steps to reproduce the behavior or problem that is being changed or addressed? - [x] Have you included steps or a guide to how the change may be verified and tested manually? - [x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via: ``` mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh ``` - [x] Have you written or updated unit tests and or integration tests to verify your changes? - [x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)? - [x] Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent? ### For documentation related changes: - [ ] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via `site-book/target/site/index.html`: ``` cd site-book mvn site ``` #### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. It is also recommended that [travis-ci](https://travis-ci.org) is set up for your personal repository such that your branches are built there before submitting a pull request. You can merge this pull request into a Git repository by running: $ git pull https://github.com/merrimanr/incubator-metron METRON-1811 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/metron/pull/1231.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1231 ---- commit 7a707bfbb1c6339f5891763c82e611eb080c4af7 Author: merrimanr <merrimanr@...> Date: 2018-10-08T14:40:37Z initial commit ---- > Alert Search Fails When Sorting by Alert Status > ----------------------------------------------- > > Key: METRON-1811 > URL: https://issues.apache.org/jira/browse/METRON-1811 > Project: Metron > Issue Type: Bug > Reporter: Ryan Merriman > Assignee: Ryan Merriman > Priority: Major > > Searching for alerts does not work when sorting by Alert Status. When this > happens, no error is indicated in the UI, but the REST calls fails. > Request: > {{{"indices":[],"facetFields":[],"query":"*","from":0,"size":25,"sort":[\{"field":"alert_status","sortOrder":"desc"}]} > }} > Response: > {{500 Internal Server Error }} > The following is logged in the REST logs @ /var/log/metron/metron-rest.log > {{18/09/26 20:38:24 ERROR controller.RestExceptionHandler: Encountered error: > Failed to execute search; error='IllegalArgumentException: Fielddata is > disabled on text fields by default. Set fielddata=true on [__anonymous_text] > in order to load fielddata in memory by uninverting the inverted index. Note > that this can however use significant memory. Alternatively use a keyword > field instead.', > search='\{"from":0,"size":25,"query":{"constant_score":{"filter":{"bool":{"must":[{"bool":{"should":[{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},\{"nested":{"query":{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},"path":"metron_alert","ignore_unmapped":false,"score_mode":"none","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},\{"bool":{"should":[{"term":{"status":{"value":"active","boost":1.0}}},\{"bool":{"must_not":[{"exists":{"field":"status","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"must_not":[\{"exists":{"field":"metaalerts","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},"boost":1.0}},"_source":\{"includes":[],"excludes":[]},"sort":[\{"alert_status":{"order":"desc","missing":"_last","unmapped_type":"text"}}],"track_scores":true,"aggregations":\{"source:type_count":{"terms":{"field":"source:type","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_src_addr_count":\{"terms":{"field":"ip_src_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_dst_addr_count":\{"terms":{"field":"ip_dst_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"enrichments:geo:ip_dst_addr:country_count":\{"terms":{"field":"enrichments:geo:ip_dst_addr:country","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}}}}' > org.apache.metron.rest.RestException: Failed to execute search; > error='IllegalArgumentException: Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.', > search='\{"from":0,"size":25,"query":{"constant_score":{"filter":{"bool":{"must":[{"bool":{"should":[{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},\{"nested":{"query":{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},"path":"metron_alert","ignore_unmapped":false,"score_mode":"none","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},\{"bool":{"should":[{"term":{"status":{"value":"active","boost":1.0}}},\{"bool":{"must_not":[{"exists":{"field":"status","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"must_not":[\{"exists":{"field":"metaalerts","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},"boost":1.0}},"_source":\{"includes":[],"excludes":[]},"sort":[\{"alert_status":{"order":"desc","missing":"_last","unmapped_type":"text"}}],"track_scores":true,"aggregations":\{"source:type_count":{"terms":{"field":"source:type","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_src_addr_count":\{"terms":{"field":"ip_src_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_dst_addr_count":\{"terms":{"field":"ip_dst_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"enrichments:geo:ip_dst_addr:country_count":\{"terms":{"field":"enrichments:geo:ip_dst_addr:country","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}}}}' > at > org.apache.metron.rest.service.impl.SearchServiceImpl.search(SearchServiceImpl.java:95) > at > org.apache.metron.rest.controller.SearchController.search(SearchController.java:54) > at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) at > org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) > at > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) > at > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) > at > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) > at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) > at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Thread.java:745) Caused by: > org.apache.metron.indexing.dao.search.InvalidSearchException: Failed to > execute search; error='IllegalArgumentException: Fielddata is disabled on > text fields by default. Set fielddata=true on [__anonymous_text] in order to > load fielddata in memory by uninverting the inverted index. Note that this > can however use significant memory. Alternatively use a keyword field > instead.', > search='\{"from":0,"size":25,"query":{"constant_score":{"filter":{"bool":{"must":[{"bool":{"should":[{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},\{"nested":{"query":{"query_string":{"query":"*","fields":[],"use_dis_max":true,"tie_breaker":0.0,"default_operator":"or","auto_generate_phrase_queries":false,"max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"split_on_whitespace":true,"boost":1.0}},"path":"metron_alert","ignore_unmapped":false,"score_mode":"none","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},\{"bool":{"should":[{"term":{"status":{"value":"active","boost":1.0}}},\{"bool":{"must_not":[{"exists":{"field":"status","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"must_not":[\{"exists":{"field":"metaalerts","boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},"boost":1.0}},"_source":\{"includes":[],"excludes":[]},"sort":[\{"alert_status":{"order":"desc","missing":"_last","unmapped_type":"text"}}],"track_scores":true,"aggregations":\{"source:type_count":{"terms":{"field":"source:type","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_src_addr_count":\{"terms":{"field":"ip_src_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"ip_dst_addr_count":\{"terms":{"field":"ip_dst_addr","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}},"enrichments:geo:ip_dst_addr:country_count":\{"terms":{"field":"enrichments:geo:ip_dst_addr:country","size":10,"min_doc_count":1,"shard_min_doc_count":0,"show_term_doc_count_error":false,"order":[{"_count":"desc"},\{"_term":"asc"}]}}}}' > at > org.apache.metron.elasticsearch.dao.ElasticsearchRequestSubmitter.submitSearch(ElasticsearchRequestSubmitter.java:74) > at > org.apache.metron.elasticsearch.dao.ElasticsearchSearchDao.search(ElasticsearchSearchDao.java:139) > at > org.apache.metron.elasticsearch.dao.ElasticsearchDao.search(ElasticsearchDao.java:197) > at > org.apache.metron.elasticsearch.dao.ElasticsearchMetaAlertSearchDao.search(ElasticsearchMetaAlertSearchDao.java:79) > at > org.apache.metron.elasticsearch.dao.ElasticsearchMetaAlertDao.search(ElasticsearchMetaAlertDao.java:210) > at > org.apache.metron.rest.service.impl.SearchServiceImpl.search(SearchServiceImpl.java:92) > ... 87 more Caused by: Failed to execute phase [query], all shards failed; > shardFailures \{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.19][0]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.20][0]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.19][0]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.20][0]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.19][1]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.20][1]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.19][1]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.20][1]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.19][2]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.20][2]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.19][2]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.20][2]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.19][3]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.20][3]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.19][3]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.20][3]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.19][4]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][bro_index_2018.09.26.20][4]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [__anonymous_text] in order to load fielddata > in memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }\{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.19][4]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; > }{[51Fb8bqzTZCwDpxkSC7IlQ][snort_index_2018.09.26.20][4]: > RemoteTransportException[[node1][192.168.66.121:9300][indices:data/read/search[phase/query]]]; > nested: IllegalArgumentException[Fielddata is disabled on text fields by > default. Set fielddata=true on [alert_status] in order to load fielddata in > memory by uninverting the inverted index. Note that this can however use > significant memory. Alternatively use a keyword field instead.]; } at > org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseFailure(AbstractSearchAsyncAction.java:272) > at > org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:130) > at > org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:241) > at > org.elasticsearch.action.search.InitialSearchPhase.onShardFailure(InitialSearchPhase.java:90) > at > org.elasticsearch.action.search.InitialSearchPhase.access$100(InitialSearchPhase.java:46) > at > org.elasticsearch.action.search.InitialSearchPhase$1.onFailure(InitialSearchPhase.java:169) > at > org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:51) > at > org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1067) > at > org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1171) > at > org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1149) > at > org.elasticsearch.transport.TransportService$7.onFailure(TransportService.java:655) > at > org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.onFailure(ThreadContext.java:623) > at > org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:39) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ... 1 more Caused by: NotSerializableExceptionWrapper[: Fielddata is > disabled on text fields by default. Set fielddata=true on [__anonymous_text] > in order to load fielddata in memory by uninverting the inverted index. Note > that this can however use significant memory. Alternatively use a keyword > field instead.]; nested: IllegalArgumentException[Fielddata is disabled on > text fields by default. Set fielddata=true on [__anonymous_text] in order to > load fielddata in memory by uninverting the inverted index. Note that this > can however use significant memory. Alternatively use a keyword field > instead.]; at > org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:618) > at > org.elasticsearch.action.search.SearchPhaseExecutionException.guessRootCauses(SearchPhaseExecutionException.java:170) > at > org.elasticsearch.action.search.SearchPhaseExecutionException.getCause(SearchPhaseExecutionException.java:111) > at > org.elasticsearch.ElasticsearchException.writeTo(ElasticsearchException.java:285) > at > org.elasticsearch.action.search.SearchPhaseExecutionException.writeTo(SearchPhaseExecutionException.java:61) > at > org.elasticsearch.common.io.stream.StreamOutput.writeException(StreamOutput.java:838) > at > org.elasticsearch.ElasticsearchException.writeTo(ElasticsearchException.java:285) > at > org.elasticsearch.transport.ActionTransportException.writeTo(ActionTransportException.java:64) > at > org.elasticsearch.common.io.stream.StreamOutput.writeException(StreamOutput.java:838) > at > org.elasticsearch.transport.TcpTransport.sendErrorResponse(TcpTransport.java:1136) > at > org.elasticsearch.transport.TcpTransportChannel.sendResponse(TcpTransportChannel.java:76) > at > org.elasticsearch.transport.DelegatingTransportChannel.sendResponse(DelegatingTransportChannel.java:70) > at > org.elasticsearch.transport.RequestHandlerRegistry$TransportChannelWrapper.sendResponse(RequestHandlerRegistry.java:123) > at > org.elasticsearch.action.support.HandledTransportAction$TransportHandler$1.onFailure(HandledTransportAction.java:77) > at > org.elasticsearch.action.search.AbstractSearchAsyncAction.raisePhaseFailure(AbstractSearchAsyncAction.java:220) > ... 16 more Caused by: java.lang.IllegalArgumentException: Fielddata is > disabled on text fields by default. Set fielddata=true on [__anonymous_text] > in order to load fielddata in memory by uninverting the inverted index. Note > that this can however use significant memory. Alternatively use a keyword > field instead. at > org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:336) > at > org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:111) > at > org.elasticsearch.index.query.QueryShardContext.getForField(QueryShardContext.java:166) > at > org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:277) > at org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:156) > at org.elasticsearch.search.SearchService.parseSource(SearchService.java:634) > at > org.elasticsearch.search.SearchService.createContext(SearchService.java:485) > at > org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:461) > at > org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:257) > at > org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:340) > at > org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:337) > at > org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69) > at > org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:644) > at > org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:638) > at > org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) > ... 3 more }} > Steps to Replicate > 1. Spin-up the development environment. > 2. Open the Alerts UI > 3. Click on "alert_status" in the table to sort by Alert Status. -- This message was sent by Atlassian JIRA (v7.6.3#76005)