【发布时间】:2014-06-21 18:34:38
【问题描述】:
在我的网络应用中,我希望允许我的用户搜索特定文章。
我需要支持以下运算符:
AND
OR
NOT
( )
" "
搜索查询可能类似于:
aaa AND bbb AND (ccc or ddd) NOT "eee fff"
如果可能,还应支持* 和? 等通配符。
如果可能的话,我希望得到一个 Linq 表达式,这将允许我查询 EF、ElasticLINQ 或 Linq2SQL。
你知道有哪些项目可以让我以某种简单的方式完成这项工作吗?
我一直在研究 Irony 和 Antlr,但它们似乎有点矫枉过正。
有什么想法吗?
编辑:
如果您对我如何自己编程有任何建议,我也会很感兴趣。但是以前一定有人担任过这个职位。
【问题讨论】:
-
用户必须写
AND,OR, ...吗?他们是程序员吗?你是不是有点过度设计了?你意识到你还需要做一些语法检查(AND AND AND AND(OR OR OR) NOT NOT NOT) 看不到任何 simple 解决方案。如果你真的需要做这样的搜索功能,试着让它不需要用户写任何东西(特别是如果他不是程序员)让他点击、选择、拖放,但不要写搜索查询。 -
感谢您的评论。输入查询的人是网站管理员,熟悉语法。
-
我同意这几乎可以肯定是过度设计。这样做的目的是使用高级查找不支持的语法查找文章,还是您试图让非 CRM 用户访问文章?