如何将 Lucene 查询转换为 Mongo 理解表单



例如,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

最新更新