例如,我需要创建类似谷歌搜索查询解析器的东西来解析如下表达式:
flying hiking or swiming -"**walking in boots **" **author:**hamish **author:**reid
或
house in new york priced over $500000 with a swimming pool
我什至要如何着手构建类似的东西?有什么好的资源吗?
c#相关,请(如果可能)
- 编辑:这是我应该能够以某种方式转换为 sql 查询的东西
最佳答案
您有多少个关键字(例如“或”、“在”、“价格高于”、“有”)?如果您只有其中几个,我建议您也使用简单的字符串处理(正则表达式)。
但如果您有更多的内容,您可能需要考虑为这些搜索表达式实现一个真正的 解析器。 Irony.net可能会帮助你(我发现它非常容易使用,因为你可以直接在代码中以接近 bnf 的形式表达你的语法)。
关于c# - 如何为搜索查询创建解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1693831/