我正在为一个项目使用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
发布于 2019-04-10 11:40:42
在我看来,您可以使用org.apache.lucene.store.RAMDirectory
这样,您完全从内存中测试的需求就得到了满足,而且在POC阶段之后,移动到磁盘实现所需的更改也会非常少。
https://stackoverflow.com/questions/55611052
复制