鉴于下面的集合可能有大约1800万份文件。我需要在文档的有效负载部分使用搜索功能。 由于数据量很大,如果我在文档中的有效负载字段上创建文本索引,是否会产生性能问题?当集合包含数百万个文档时,是否存在任何已知的性能问题?
{
"_id" : ObjectId("5575e388e4b001976b5e570d"),
"createdDate" : ISODate("2015-06-07T05:00:34.040Z"),
"env" : "prod",
"messageId" : "my-message-id-1",
"payload" : "message payload typically 500-1000 bytes of string data"
}
我使用MongoDB 3.0.3
答案 0 :(得分:0)
我相信这正是NoSQL DB的设计目标;通过[反转]索引,您可以快速访问一段数据。 Mongo就是为此而设计的。 NoSQL DB就像Mongo一样,旨在处理分布在集群中多个节点上的大量数据。 Mongo范围内的1800万非常小。如果索引属性,则不应出现任何性能问题。您可能还希望阅读sharing
,这是从MongoDB中获得最佳性能的关键。
答案 1 :(得分:0)
您可以使用 Mongo DB Atlas 功能,您可以在其中根据 MongoDB 提供的不同分析器搜索您的文本。然后您可以进行模糊搜索,其中也将返回更接近您的文本的文本: PS:全文匹配和忽略模糊,只需要从下面排除模糊对象。
$search:{
{
index: 'analyzer_name_created_from_atlas_search',
text: {
query: 'message payload typically 500-1000 bytes of string data',
path: 'payload',
fuzzy:{
maxEdits: 2
}
}
}
}