2016-11-11 109 views
0

Elasticsearch擁有很棒的DSL本身。但是,我們如何實現一種自定義查詢語言,以允許用戶說出例如名稱= Dwayne OR Johnson類似於Atlassian Jira作爲JQL實現的內容。我已經通過https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html。但lucene語法|和&對用戶來說可能更具技術性。彈性搜索類似於JQL(jira查詢語言)的人類友好查詢語言

另一種選擇是可能通過使用ANTLR或實現自定義的查詢分析器和查詢類型elasticsearch插件半熟

但是,如果有庫/已經做這個框架,那麼它會更容易只使用他們。 (例如http://www.loc.gov/standards/sru/cql/spec.html

所以問題是,有沒有這樣的框架/庫?

+0

您是否檢查過'simple_query_string' https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html? – Val

+0

是的我在我的問題中已經提到過,它使用的lucene語法在我看來並不那麼用戶友好。感謝您的回覆 –

+0

沒有你提到過'query_string','simple_query_string'是針對最終用戶的'query_string'的一個簡單變體。 – Val

回答

0

謝謝,我使用自定義的elasticsearch插件實現。

0

如果可以幫忙,我的問題也多多少少。 然後,我正在爲這個js庫工作。它有兩個主要功能: - 一種自動完成輸入文本,可幫助用戶鍵入查詢,語法靈感來自lucene語言。 - 轉換用戶鍵入爲REST查詢標準語法的語言(OData的或FIQL)

每一件事情是在GitHub上的查詢功能: https://github.com/benjaminpochat/lucene-like-query-for-REST

它仍在建設中,但如果它與匹配你的需求,讓我知道。