一种人性化的查询语言,类似于弹性搜索的JQL(jira查询语言)

时间:2016-11-11 05:41:53

标签: elasticsearch antlr dsl elasticsearch-plugin parboiled

Elasticsearch本身拥有出色的DSL。但是,我们如何实现一种自定义查询语言,允许用户说出例如Name = Dwayne OR Johnson类似于Atlassian Jira作为JQL实现的。

我经历了https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html。但是lucene语法|和&对用户来说可能更具技术性。

另一种选择是将自定义查询解析器和查询类型实现为弹性搜索插件,可能是使用ANTLR或者是半熟的

但是,如果有已经执行此操作的库/框架,那么使用它们会更容易。 (例如http://www.loc.gov/standards/sru/cql/spec.html

所以问题是,有没有这样的框架/库?

2 个答案:

答案 0 :(得分:0)

谢谢,我使用自定义elasticsearch插件实现。

答案 1 :(得分:0)

如果可以提供帮助,我或多或少都有同样的问题。 然后我正在为一个js库工作。它有两个主要功能: - 一个自动完成输入文本,帮助用户键入一个查询,其语法灵感来自lucene语言。 - 将用户键入的查询转换为REST查询标准语法语言(OData或FIQL)的函数

每件事都在GitHub上: https://github.com/benjaminpochat/lucene-like-query-for-REST

它仍在建设中,但如果符合您的需求,请告诉我。