我想为我的项目实施高级搜索。搜索现在使用用户输入的所有字符串,并与标准 API 进行了很大的分离。
这很好用,但现在我想实现更多功能:AND、OR 和括号()
我很难解析字符串 - 并从字符串构建标准。我找到了这个 Stackoverflow question,但它并没有真正帮助(他没有说清楚他想要什么)。
我找到了另一篇文章,但这支持更多并吐出 sql 语句。我经常听到的另一件事是 Lucene——但我不确定这是否真的对我有帮助。
我一直在搜索,发现了 Lucene.Net WhitespaceAnalyzer 和 QueryParser。
它将搜索 A AND B OR C 更改为 +A +BC 之类的内容,这是朝着正确方向迈出的重要一步(而且它处理括号)。下一步是将转换后的字符串转换为一组连词和析取词。
我发现的Java 示例使用的是我在 NHibernate 中找不到的查询生成器。
还有什么想法吗?