1

我有如下文件,我想要全文搜索(values仅限)是否可以在 rethinkdb 中将对象转换为字符串?我想要一些r.table('x')('description').contains('commonwealth')我不知道有很多或会有什么孩子的东西。所以首先将子节点的所有值转换为单个字符串,然后搜索文本(或其他方式)。谢谢

{
  "description": {
    "parlist": [
      {
        "listitem": {
          "text": {
            "bold": "their",
            "child": "odds hope best purse claim",
            "emph": "commonwealth crows philip duke wench imagination longaville worthiness father grey"
          }
        }
      }
    ]
  }
}
4

2 回答 2

2

这应该有效,但它可能不是超级有效

r.table('x').filter(function(doc) {
    return doc('description').coerceTo("STRING").match("commonwealth")
})
于 2014-04-22T00:11:00.853 回答
1

你也许可以用 map/reduce 来解决这个问题,我过去做过类似的事情。我稍后会尝试用这样的例子来更新这个答案。

但我强烈建议使用正确的工具来完成这项工作,听起来你想要的是elasticsearch。它与您的数据库一起运行,并为您提供更好的搜索工具。它会远远超过你可以用 map/reduce 做的任何事情,而且它会更快。

于 2014-04-21T22:34:11.257 回答