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)
所以问题是,有没有这样的框架/库?
答案 0 :(得分:0)
谢谢,我使用自定义elasticsearch插件实现。
答案 1 :(得分:0)
如果可以提供帮助,我或多或少都有同样的问题。 然后我正在为一个js库工作。它有两个主要功能: - 一个自动完成输入文本,帮助用户键入一个查询,其语法灵感来自lucene语言。 - 将用户键入的查询转换为REST查询标准语法语言(OData或FIQL)的函数
每件事都在GitHub上: https://github.com/benjaminpochat/lucene-like-query-for-REST
它仍在建设中,但如果符合您的需求,请告诉我。