Я работаю на поисковом сервере, как-то вроде поиска эластичных. Просто небольшой проект, который я разрабатываю. Завершили большинство частей, но я застрял на том, как пользователь будет взаимодействовать с системой.Создайте язык запроса с помощью Python
Первоначально Я решил, что пользователь запросит отправку запроса JSON с обязательными полями и его значениями. Но проблема, с которой я сталкиваюсь, заключается в том, что, хотя я могу оценивать запросы с использованием json-метода, я не смог бы реализовать запросы Boolean Queries и Compounf.
Я пытался что-то вроде
index: name
schema:name
field1: value
field 2: value
, но это также может быть что-то вроде этого, если логическое выражение реализуется
index : name
schema : name
field 1 : name1 or name 2
field 2: <9.22 and >=2.32
field 3: (<9.22 and >=2.32) or (<100 and >90) // compound statement.
Есть несколько простой способ осуществить это, фактически не создавая Грамматика языка запросов. Если да, то как я могу достичь этого, если не тогда и то же самое.
Я думал о разделении значений на основе и/или каждого поля, но это не сработало бы, если есть составные утверждения.
Я также проверял пипарирование, но я не мог понять, как это использовать.
Проверьте [whoosh] (https://bitbucket.org/mchaput/whoosh/wiki/Home) или [plyse] (https://github.com/sebastiandev/plyse). Кроме того, pyparsing включает несколько образцов парсеров запросов на странице [Примеры] (http://pyparsing.wikispaces.com/Examples). – PaulMcG