MongoDB全文搜索和查找运算符

MongoDB全文搜索和查找运算符,mongodb,nosql,Mongodb,Nosql,MongoDB中的全文搜索似乎是一个不错的功能,尤其是在需要高性能搜索和索引时。 但是,我想知道为什么不允许对多个集合进行全文搜索 例如:我有一个供应商和一个产品集合(每个供应商有n个产品),我确实希望搜索所有产品,但供应商的名称也应该匹配。 现在我使用$lookup,然后使用正则表达式进行匹配。这是可行的,但速度很慢(500-800毫秒) 如果我使用带索引的全文搜索,这将显著提高性能。但是$text操作符必须是聚合管道中的第一个阶段,不允许我首先使用$lookup (见限制部分:) 有什么办法

MongoDB中的全文搜索似乎是一个不错的功能,尤其是在需要高性能搜索和索引时。 但是,我想知道为什么不允许对多个集合进行全文搜索

例如:我有一个供应商和一个产品集合(每个供应商有n个产品),我确实希望搜索所有产品,但供应商的名称也应该匹配。 现在我使用$lookup,然后使用正则表达式进行匹配。这是可行的,但速度很慢(500-800毫秒)

如果我使用带索引的全文搜索,这将显著提高性能。但是$text操作符必须是聚合管道中的第一个阶段,不允许我首先使用$lookup

(见限制部分:)


有什么办法可以提高多个集合的文本搜索速度吗?

适合仍在寻找解决方案的人

db.getCollection('projects').aggregate([{
    "$match": {
        "$text": {"$search": query }
    }}, {
    "$lookup": {
        "from":         "users",
        "localField":   "uuid",
        "foreignField": "uuid",
        "as":           "user"
    }}, {
        "$sort": {
            "score": { "$meta": "textScore" }
        }
    }]);
其中查询是文本搜索字符串

此查询针对的是
项目
带有键
uuid
的集合,它指的是
用户
带有键
uuid
的集合,所有集合都按相关性排序