例如,Lucene查询是(euid:3) AND (sev:0)
但Mongo无法理解的。
是否可以将Lucene查询转换为Mongo理解形式?
MongoDB中的语法是:
db.collectionName.find( { "euid" : 2, "sev" : 0 } );
逗号分隔的条件被视为"AND",因此上面的语法表示在集合中查找我的文档,其中 euid 等于 2,sev 等于 0。
Lucene包含一个查询解析器,这使得将Lucene查询转换为Mongo查询变得相对简单。
您必须注意输入 mongo 搜索词("1.0" != 1.0F),您可能无法获得预期的结果。
有关示例查询转换器,请查看规模集搜索 API 附带的 MongoQueryConverter。 如果有兴趣,我可以将其作为独立库发布,可以与 Jongo 一起使用或不使用 Jongo。
https://github.com/scaleset/scaleset-search/blob/master/src/main/java/com/scaleset/search/mongo/MongoQueryConverter.java