MongoDB全文搜索,两个字段自动完成

道乐DK

我正在尝试实施MongoDB地图集搜索,目标是在2个字段上自动完成。

我目前有此实现:

const searchStep = {
    $search: {
        // Read more about compound here:
        // https://docs.atlas.mongodb.com/reference/atlas-search/compound/
        compound: {
            must: [
                {
                    autocomplete: {
                        query,
                        path: 'name',
                    },
                },
                {
                    autocomplete: {
                        query,
                        path: 'description',
                    },
                },
            ],
        },
    },
}

这似乎不起作用,似乎仅在名称描述匹配时才起作用如何解决此问题,因此同时查询名称和描述?

我现在尝试使用通配符选项:

{
    wildcard: {
        query,
        path: ['name', 'description'],
        allowAnalyzedField: true,
    }
}

但是通配符解决方案似乎不起作用-没有返回相关结果...

道格

如果您要在name上进行匹配subscription,请使用should:代替must:

must将要求所有子查询都匹配,而should仅要求其中一个匹配

const searchStep = {
    $search: {
        // Read more about compound here:
        // https://docs.atlas.mongodb.com/reference/atlas-search/compound/
        compound: {
            should: [
                {
                    autocomplete: {
                        query,
                        path: 'name',
                    },
                },
                {
                    autocomplete: {
                        query,
                        path: 'description',
                    },
                },
            ],
        },
    },
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章