3

使用haskell mongodb驱动进行文本搜索的状态如何?

mongo 中现在有类似于 SQL 变体的“LIKE”运算符,那么在集合或整个数据库中搜索特定文本字符串的最佳方法是什么?

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

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

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

谢谢。

4

1 回答 1

5

结果类型已包含文档列表(包含搜索的文本)。不幸的是,我无法在正在运行的数据库上测试查询,但我曾经runCommand运行过聚合(在为 haskell 驱动程序实现之前)。您为此类查询获得的结果文档如下所示:

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

结果文档有一个字段results,它的值是一个包含字段score和的文档obj。所以最后,您可以obj在结果列表中找到 - 字段后面的每个匹配的文档。有关更多详细信息,您应该查看此处

于 2013-07-11T07:35:28.757 回答