使用haskell mongodb驱动程序进行文本搜索的状态是什么?
现在mongo中的'LIKE'运算符类似于SQL变体,那么搜索集合或整个数据库以获取特定文本字符串的最佳方法是什么?
我读过一些引用外部工具的人,但我也看到一些文本搜索是在2.4 mongo版本中实现的,这是通过命令界面完成的。
从控制台执行此操作应该没有任何问题,但我如何从haskell驱动程序执行此操作?我在驱动程序API中找到了'runCommand'函数,看起来应该可以向服务器发送'text'命令,但签名显示它只返回一个文档 - 而不是文档列表。那么它是如何正确完成的?
如何有效地搜索集合或数据库中的单词或句子,以便返回包含单词的文档列表?使用mongo'文本搜索'功能可以不使用外部工具吗?应该在应用程序级别完成吗?
感谢。
答案 0 :(得分:5)
结果类型已包含文档列表(包含搜索的文本)。不幸的是,我无法在运行的数据库上测试查询,但我使用runCommand
来运行聚合(在为haskell驱动程序实现之前)。您获得此类查询的结果文档如下所示:
{ results: [
{ score : ...,
obj : { ... }
},
...
],
... ,
ok : 1
}
结果文档包含字段results
,其值为包含字段score
和obj
的文档。因此,最后,您可以在结果列表中找到obj
- 字段后面的每个匹配文档。
有关详细信息,请查看here。