用Java解析搜索查询

Bar*_*ler 5 java search

我一直在尝试找到一种简单的方法来解析搜索查询并将其转换为我的数据库的SQL查询.

我找到了两个解决方案:

  1. Lucene:强大的基于Java的搜索引擎,包含一个查询解析器,但它不是很容易配置,我可以找到一种方法来轻松破解/调整它来创建SQL查询.
  2. ANTLR:经验丰富的文本词法分析器.用于构建从编译器到摩天大楼的任何东西.ANTLR具有高度可配置性,但从现在开始每个人都需要学习一门新语言...

还有其他想法吗?

Gar*_*ryF 0

很大程度上取决于您必须解析的查询类型,并且在一定程度上取决于数据库中数据的结构。我假设您不会尝试在数据库(即整个数据库中的搜索引擎)中进行全文搜索,因为正如大多数信息检索人员会告诉您的那样,这样做的性能非常糟糕。倒排索引无疑是做到这一点的最佳方法。

告诉我们更多关于实际问题的信息:用户将输入什么,他们期望输出什么,以及数据模型是什么样的。在没有这些信息的情况下设计搜索解决方案,您将得到远非最佳的结果。