2013-07-11 62 views
3

使用haskell mongodb驱动程序进行文本搜索的状态是什么?Haskell mongodb文本搜索

mongo中现在有类似于SQL变体的'LIKE'运算符,那么搜索集合或整个db以获取特定文本字符串的最佳方法是什么?

我读过一些人提到外部工具,但我也可以看到,一些文本搜索是在2.4 mongo版本中实现的,这是通过命令接口完成的。

从控制台执行它应该没有任何问题,但我怎么会从haskell驱动程序做到这一点?我在驱动程序API中找到了'runCommand'函数,它看起来应该可以将“文本”命令发送到服务器,但签名显示它只返回一个文档 - 而不是文档列表。那么它是如何正确地完成的?

我将如何有效地搜索集合或分数据库中的单词或句子,以便它返回包含单词的文档列表?使用mongo'文字搜索'功能可以不使用外部工具吗?应该在应用程序级别完成吗?

谢谢。

回答

5

结果类型已包含文档列表(包含搜索文本)。不幸的是,我无法在正在运行的数据库上测试查询,但我使用runCommand运行聚合(在为haskell驱动程序实施之前)。你会得到这样一个查询结果的文件看起来是这样的:

{ results: [ 
      { score : ..., 
       obj : { ... } 
      }, 
      ... 
      ], 
    ... , 
    ok : 1 
} 

结果文档具有场results,它的值是场scoreobj文件。因此,最后,您可以在结果列表中找到obj-字段后面的每个匹配文档。 欲了解更多详情,你应该看看here

+0

Ahaaa ..就是这样工作:)非常感谢你,我会先测试它,然后将它标记为已解决,如果一切按预期工作。 –