Elasticsearch provides a full Query DSL (Domain Specific Language) based on JSON to define queries. Think of the Query DSL as an AST (Abstract Syntax Tree) of queries, consisting of two types of clauses
google analytics should work i suppose. though it would require creating a custom dashboard panel. not sure if it can strip url data to separate keywords from the search urls.