2010-01-11 70 views
0

我深化發展一個小型的搜索引擎,我想根據邏輯運算符來實現搜索的功能,並OR ...解析和或查詢制定SQL

我在上解析困難一個包含AND,OR,NOT的查詢...特別是當涉及括號時(貓或狗)不是(自行車不是麥克)

對於簡單的AND和OR查詢,顯然太簡單了,瞭解如何制定SQL查詢,但當它變得複雜時,我迷路了!

我不確定搜索引擎是否具備此功能,但我想深入研究它以進行學習。

我很抱歉我最後一個問題不是很清楚,我希望這次我做得更好。

回答

2

我建議看看像ANTLR這樣的詞法分析器/解析器生成器。一個簡單的語法應該能夠將你排除在外。這種情況甚至可能有existing grammar

1

查看pyparsing項目的searchparser.py示例。

它顯示了一種方法來實現:

  • AND,
  • OR,
  • NOT,
  • 分組和
  • 通配符。

在293行代碼(包括註釋和測試)全部完成......