Парсер для строк запроса Elastic Search - PullRequest
0 голосов
/ 30 августа 2018

Интересно, есть ли доступная грамматика, которая сможет анализировать строки запроса, отправленные в Elastic Search query_string API ?

Ссылка здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax

Я бы предпочел EBNF. В настоящее время я использую Python на всякий случай.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Whoosh (https://whoosh.readthedocs.io/en/latest/index.html) - это поиск на чистом Python с парсером запросов Lucene, который можно повторно использовать в собственном приложении. Я думаю, что он использовал пример парсера Lucene в pyparsing (https://github.com/pyparsing/pyparsing/blob/master/examples/lucene_grammar.py)

0 голосов
/ 30 августа 2018

Вы можете найти грамматику EBNF синтаксического анализатора запросов строки Lucene здесь: https://github.com/apache/lucene-solr/blob/master/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj

Соответствующие шаги сборки здесь: https://github.com/apache/lucene-solr/blob/1d85cd783863f75cea133fb9c452302214165a4d/lucene/queryparser/build.xml#L63-L79

...