gpt4 book ai didi

mongodb - 在 MongoDB 中搜索

转载 作者:可可西里 更新时间:2023-11-01 10:04:05 25 4
gpt4 key购买 nike

假设您需要在 MongoDB 中实现搜索。您收集了如下所示的文档:

{text: "This is some Text }
{text: "this is another text hehe"}

现在您要实现不区分大小写的搜索,该搜索将返回包含搜索词的所有文档。例如,如果您搜索“文本”,它会返回两个文档。如果您搜索“hehe”,它只会返回第二个文档。

我知道你可以像这样使用 $regex 来做到这一点:

db.comments.find({text: {$regex: /.*SEARCH_TERM.*/i}});

其中 SEARCH_TERM 是我们要查找的字词。

我想知道是否有更好的方法来执行此操作,因为通过正则表达式搜索似乎不是一个好主意。这种方式没有索引或任何东西。

我的想法是,您可以以某种方式标记文档中的文本,因此您将拥有这样的文档:

{text: ["This", "is", "some", "Text"]}
{text: ["this", "is", "another", "text", "hehe"]}

然后索引这些数组。有没有更好的方法来做到这一点?

最佳答案

也许全文搜索就是您的答案 http://docs.mongodb.org/manual/core/index-text/ http://docs.mongodb.org/manual/reference/operator/query/text/

来自这些引用的代码片段:

1 - db.comments.ensureIndex( { comments: "text" } )

以下代码搜索包含单词 Thisanother 但不包含术语 hehe 的评论:

2- db.comments.find( { $text: { $search: "This another -hehe" } } )

关于mongodb - 在 MongoDB 中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com