如何为搜索查询创建解析器

b0x*_*0rz 5 c# asp.net logic parsing

例如,我需要创建像谷歌搜索查询解析器之类的东西来解析这样的表达式:

飞行徒步游泳 - "**走在靴子**"**作者:**哈米什**作者:**里德

要么

纽约的房子,价格超过 50万美元,有一个游泳池

我怎么会开始建立这样的东西?有什么好资源吗?

c#相关,请(如果可能)

  • 编辑:这是我应该能够以某种方式转换为SQL查询的东西

and*_*dyp 5

你有多少个关键词(比如'或','in','price over','with a')?如果你只有几个我建议用简单的字符串处理(regexes).

但是如果你有更多,你可能想要研究为这些搜索表达式实现一个真正的解析器.Irony.net可能会帮助你(我发现它非常容易使用,因为你可以直接在代码中以近乎bnf形式表达你的语法).