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

时间:2013-10-17 10:30:16

标签: mongodb lucene

例如,Lucene查询是(euid:3) AND (sev:0),但Mongo无法理解这一点。

是否可以将Lucene查询转换为Mongo理解表单?

2 个答案:

答案 0 :(得分:0)

MongoDB中的语法是:

   db.collectionName.find( { "euid" : 2, "sev" : 0 } );

逗号分隔条件被视为“AND”,因此上面的语法说在集合中找到我的文档,其中euid等于2且sev等于0。

答案 1 :(得分:0)

Lucene包含一个查询解析器,可以将lucene查询转换为Mongo查询。

您必须小心使用mongo搜索字词(“1.0”!= 1.0F)并且您可能无法获得预期的结果。

对于示例查询转换器,请查看scaleset-search API附带的MongoQueryConverter。如果有兴趣,我可以将其作为一个独立的库发布,可以与Jongo一起使用或不与Jongo一起使用。

https://github.com/scaleset/scaleset-search/blob/master/src/main/java/com/scaleset/search/mongo/MongoQueryConverter.java