Mongodb全文搜索

时间:2014-05-13 11:04:56

标签: mongodb solr full-text-search

我正在运行MongoDB(2.6.1)实例并拥有数百万个文档,例如

t.save( { _id: 1, title: "Physics World", caption: "Physics World is the membership magazine of the Institute of Physics."} );
t.save( { _id: 2, title: "A break away!", caption: "'A break away!' is an 1891 painting by Australian main writer Tom Roberts."} );
t.save( { _id: 3, title: "Mahim Bora", caption: "Mahim Bora (b.1926) is an Indian main writer and educationist from Assam state."});

我还创建了一个索引,例如:

t.ensureIndex( { caption: "text" } );

然后我搜索短语"主要作家"像这样:

t.runCommand( "text", { search : "\"main writer\"", limit: 2000 } );

我遇到的问题是,Mongo似乎只返回一条记录而不是两条记录。如果我将数据加载到SOLR并将其编入索引以进行全文搜索,则可以按预期工作。

我可以在这里找到什么吗?

1 个答案:

答案 0 :(得分:0)

请记住,您运行的text命令在2.6版中已弃用:

  

文本

     

从2.6版开始不推荐使用:改为使用$ text查询运算符。

您应该使用$ text代替:

db.t.find({$text:{ $search : "\"main writer\""}}).limit(2000)

不知道这是否会对您的具体情况产生影响,但使用不推荐的命令会使调试变得困难,并且未来肯定不会支持它。当我测试这两个版本时,但我只加载了3个文件,而不是数百万个。