Logic 解析和或查询以形成sql

Logic 解析和或查询以形成sql,logic,search-engine,Logic,Search Engine,我正在开发一个小型搜索引擎,我想实现基于逻辑运算符和或的搜索功能 我在解析包含AND或NOT的查询时遇到困难。。。特别是在括号里。。。(猫或狗)不是(自行车不是迈克) 对于简单的AND、AND或查询,它显然太简单了,我知道了如何构造sql查询,但当它变得如此复杂时,我就不知所措了 我不确定搜索引擎是否有这个功能,但我想深入了解一下,以便学习 很抱歉,我的最后一个问题不是很清楚,我希望这次我做得更好。我建议看一个类似的lexer/parser生成器。一个简单的语法应该能帮你分类。对于这样的事情,甚

我正在开发一个小型搜索引擎,我想实现基于逻辑运算符和或的搜索功能

我在解析包含AND或NOT的查询时遇到困难。。。特别是在括号里。。。(猫或狗)不是(自行车不是迈克)

对于简单的AND、AND或查询,它显然太简单了,我知道了如何构造sql查询,但当它变得如此复杂时,我就不知所措了

我不确定搜索引擎是否有这个功能,但我想深入了解一下,以便学习


很抱歉,我的最后一个问题不是很清楚,我希望这次我做得更好。

我建议看一个类似的lexer/parser生成器。一个简单的语法应该能帮你分类。对于这样的事情,甚至可能会有一个新的解决方案。

我建议看一看像这样的lexer/parser生成器。一个简单的语法应该能帮你分类。对于这样的事情,甚至可能有一个解决方案。

看看这个项目中的例子

它显示了实现以下功能的方法:

  • 以及
  • 或者
  • 不是,
  • 分组和
  • 通配符
所有这些都是用293行代码(包括注释和测试)完成的。

看看这个项目中的示例

它显示了实现以下功能的方法:

  • 以及
  • 或者
  • 不是,
  • 分组和
  • 通配符

所有这些都是在293行代码(包括注释和测试)中完成的。

如果您使用的是MySQL,则可以使用内置布尔搜索:


如果您使用的是MySQL,则可以使用内置布尔搜索: