以编程方式将X w / 5(Y || Z)扩展为“X Y”~5 || “X Z”~5

时间:2012-06-26 20:34:41

标签: c# regex lucene boolean lucene.net

我需要能够以编程方式扩展用户的搜索表达式,例如:     X w / 5(Y || Z) 至    “X Y”~5 || “X Z”〜5
我可以利用现有的库来做这种事情吗?如果没有,建议采用什么方法?该解决方案将存在于.NET环境中。

2 个答案:

答案 0 :(得分:1)

您需要的是一个解析器,它将创建一个抽象语法树,然后您可以对其进行操作。看看here

答案 1 :(得分:1)

您需要查看一下联合正常形式http://en.wikipedia.org/wiki/Conjunctive_normal_form和析取正常形式:http://en.wikipedia.org/wiki/Disjunctive_normal_form。

您可以实现一种算法以及指向java实现的链接。

相关问题