MongoDB - $ text运算符搜索短语OR word(s)

时间:2015-05-11 06:06:50

标签: mongodb search

我正在进行全文搜索,需要短语字词。

根据documentation

  

如果$ search字符串包含短语和单个术语,则文本搜索将仅匹配包含该短语的文档。更具体地说,搜索使用搜索字符串中的各个术语执行短语的逻辑AND。

     

例如,传递$ search字符串:

"\"ssl certificate\" authority key"
  

$ text运算符搜索短语" ssl certificate" ("权限"或"键"或" ssl"或"证书")。

是否可以通过MongoDB本地执行此操作?我现在看到的另一种方式是在顶部使用弹性搜索。

更新 - 以下搜索不起作用,将导致BadValue Too many text expressions错误:

{
    $or: [{
        $text: {
            $search: "\"ssl certificate\""
        }
    }, {
        $text: {
            $search: "authority key"
        }
    }]
}

1 个答案:

答案 0 :(得分:2)

本机执行此操作的唯一方法是执行多个查询 - 每个短语一个,所有独立单词一个 - 然后将结果合并到应用程序层。

当相关性排名对您的用例很重要时,have mongodb also give you the text score并在合并结果时使用它。