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

时间:2019-04-10 11:07:03

标签: java lucene

我正在对以下项目使用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

1 个答案:

答案 0 :(得分:1)

我认为您可以使用org.apache.lucene.store.RAMDirectory

这样,您就可以完全从内存中进行测试,这一要求得到了满足,并且在POC阶段之后,只需很少的更改即可转移到磁盘实现中。