使用Lucene Query来测试文档是否匹配



我正在为如下所示的项目使用 Lucene 查询:

Analyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser("message", analyzer);
Query log = parser.parse("something OR name=mustafa");

是否有可能将此Query对象与某种 Map 或 POJO 一起使用来测试该对象是否与查询匹配?我知道这不是 Lucene 的预期用途,它适用于IndexSearcher但它对我很有用。

示例我的想法:

Map<String,Object> a = {"message": "xx", "name": "mustafa"}
Map<String,Object> b = {"message": "xx", "name": "osman"}
SomeSearcher.matches(log, a) == true
SomeSearcher.matches(log, b) == false

在我看来,您可以使用org.apache.lucene.store.RAMDirectory

这样,完全从内存中测试的要求就得到了满足,并且在 POC 阶段之后移动到磁盘实现所需的更改也非常少。

相关内容

最新更新