@vartoso/kql-to-dsl
v0.2.1
Published
Standalone KQL to Elasticsearch DSL converter extracted from Kibana.
Downloads
113
Maintainers
Readme
@vartoso/kql-to-dsl
A standalone KQL (Kibana Query Language) to Elasticsearch DSL converter extracted from Kibana.
Installation
npm install @vartoso/kql-to-dslUsage
import { buildEsQuery } from '@vartoso/kql-to-dsl';
// Define your data view (index pattern)
const dataView = {
title: 'my-index',
fields: [
{ name: 'status', type: 'string' },
{ name: 'timestamp', type: 'date' },
{ name: 'count', type: 'number' }
]
};
// Convert KQL to Elasticsearch DSL
const result = buildEsQuery(
dataView,
{ query: 'status:"active" AND count > 100', language: 'kuery' },
[], // filters
{ allowLeadingWildcards: true }
);
console.log(JSON.stringify(result, null, 2));API
buildEsQuery(dataView, query, filters, config)
Converts a KQL query to Elasticsearch DSL.
Parameters:
dataView- Object withtitleandfieldsarrayquery- Object withquerystring andlanguage('kuery' or 'lucene')filters- Array of filter objects (optional)config- Configuration object (optional)
Returns: Elasticsearch bool query object
Features
- ✅ KQL to Elasticsearch DSL conversion
- ✅ Support for field-based queries
- ✅ Boolean operators (AND, OR, NOT)
- ✅ Wildcard queries
- ✅ Range queries
- ✅ TypeScript support
Changelog
v0.2.0
- 🎉 Major Fix: Now uses the original Kibana KQL grammar (PEG.js)
- ✅ Generates proper Elasticsearch DSL with
multi_match,bool, and other valid query types - ✅ Full compatibility with Kibana's KQL syntax
- ✅ Production-ready query generation
v0.1.x
- Initial release with basic KQL parsing
License
MIT
