Elseql
a SQL-like command line client for elasticsearch
Install / Use
/learn @raff/ElseqlREADME
elseql
You know, for Query
A SQL-like command line / REPL client for ElasticSearch
USAGE
elseql [--debug] [--port=host:port]
COMMANDS
- select - see SEARCH SYNTAX
- describe [index]
- set options [on|off]
- help
SEARCH SYNTAX
SELECT {fields}
[FACETS facet-fields]
[SCRIPT script-field = 'script']
FROM index
[WHERE where-condition]
[FILTER filter-condition]
[ORDERY BY order-fields]
[LIMIT [start,] count]
where: fields: '*' or comma-separated list of field names to be returned
facet-fields: comma-separated list of fields to execute a facet query on
script-field: name of script field, to be used in select clause
script: ElasticSearch script
index: index to query
where-condition:
{field-name} [ = != > >= < <= ] {value}
{field-name} LIKE {value}
{field-name} IN (value1, value2, ...)
{field-name} BETWEEN {min-value} AND {max-value}
NOT {where-condition}
{where-condition} AND {where-condition}
{where-condition} OR {where-condition}
or where-condition:
'query in Lucene syntax'
filter-condition:
QUERY {where-condition} - query filter, same syntax as where condition
EXIST {field-name} - exists field filter
MISSING {field.name} - missing field filter
order-fields: comma-separated list of {field-name} [ASC | DESC]
start: start index for pagination
count: maximum number of returned results
A special case for LIMIT start,count allows to do a "scroll" query (i.e. results will be returned in batches):
start: -1 - enable "scroll" query
count: batch size - the query will return {count} results (actually {count} per shard) and will be repeated until all results are returned.
This is very useful when you are expecting large result sets (or you are doing a full table scan). Note that in "scroll" mode sort and facets are disabled.
INSTALLATION
From pypi:
sudo easy_install elseql
or:
sudo pip install elseql
With python and setuptools installed:
sudo python setup.py install
You can also run the command without installing as:
python -m elseql.elseql
To do this you will need the pyparsing, rawes and cmd2 packages installed, that are automatically installed in the previous step.
sudo easy_install pyparsing
sudo easy_install rawes
sudo easy_install cmd2
The cmd2 package add a few extra features "command-line" related features. The most useful is redirection:
elsesql> select id,field1,field2 from index where condition > result.csv
Note that because '>' is used for redirection you'll need to use GT in the where clause insted (also available LT, GTE, LTE)
SEE ALSO
- http://elasticsearch.org/, You know, for Search
- https://github.com/raff/elseql-go, a Go implementation
Related Skills
feishu-drive
339.5k|
things-mac
339.5kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
339.5kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
yu-ai-agent
2.0k编程导航 2025 年 AI 开发实战新项目,基于 Spring Boot 3 + Java 21 + Spring AI 构建 AI 恋爱大师应用和 ReAct 模式自主规划智能体YuManus,覆盖 AI 大模型接入、Spring AI 核心特性、Prompt 工程和优化、RAG 检索增强、向量数据库、Tool Calling 工具调用、MCP 模型上下文协议、AI Agent 开发(Manas Java 实现)、Cursor AI 工具等核心知识。用一套教程将程序员必知必会的 AI 技术一网打尽,帮你成为 AI 时代企业的香饽饽,给你的简历和求职大幅增加竞争力。
