A system, comprising: a master node with instructions executed by a master node processor to receive a query over a network from a client machine and distribute query segments over the network; and a plurality of worker nodes (150_1, 150_N) to receive the query segments, wherein each worker node (150_1, 150_N) includes instructions executed by a worker node processor to construct from a columnar file a term map characterizing a term from the columnar file, row identifications from the columnar file and a Boolean indicator for each row identification characterizing whether the term is present in the row specified by the row identification, wherein the term map is dynamically constructed in response to a query segment, cache the term map in dynamic memory, using Lucene, collect from the term map values responsive to the query segment, and send the values to the master node, wherein the master node aggregates values from the plurality of worker nodes (150_1, 150_N) to form a result that is returned to the client machine over the network; wherein the columnar file is a Parquet file; and wherein the instructions executed by a worker node processor to construct from a locally stored columnar file a term map include instructions to interact with Elasticsearch code modules. a master node with instructions executed by a master node processor to receive a query over a network from a client machine and distribute query segments over the network; and a plurality of worker nodes (150_1, 150_N) to receive the query segments, wherein each worker node (150_1, 150_N) includes instructions executed by a worker node processor to construct from a columnar file a term map characterizing a term from the columnar file, row identifications from the columnar file and a Boolean indicator for each row identification characterizing whether the term is present in the row specified by the row identification, wherein the term map is dynamically constructed in response to a query segment, cache the term map in dynamic memory, using Lucene, collect from the term map values responsive to the query segment, and send the values to the master node, wherein the master node aggregates values from the plurality of worker nodes (150_1, 150_N) to form a result that is returned to the client machine over the network; wherein the columnar file is a Parquet file; and wherein the instructions executed by a worker node processor to construct from a locally stored columnar file a term map include instructions to interact with Elasticsearch code modules. construct from a columnar file a term map characterizing a term from the columnar file, row identifications from the columnar file and a Boolean indicator for each row identification characterizing whether the term is present in the row specified by the row identification, wherein the term map is dynamically constructed in response to a query segment, cache the term map in dynamic memory, using Lucene, collect from the term map values responsive to the query segment, and send the values to the master node, wherein the master node aggregates values from the plurality of worker nodes (150_1, 150_N) to form a result that is returned to the client machine over the network; wherein the columnar file is a Parquet file; and wherein the instructions executed by a worker node processor to construct from a locally stored columnar file a term map include instructions to interact with Elasticsearch code modules.