我正在对以下项目使用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
答案 0 :(得分:1)
我认为您可以使用org.apache.lucene.store.RAMDirectory
这样,您就可以完全从内存中进行测试,这一要求得到了满足,并且在POC阶段之后,只需很少的更改即可转移到磁盘实现中。