gpt4 book ai didi

mongodb - 排除 MongoDB 文本索引中的某些文本字段

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

我有一个包含如下文本索引的集合:

db.mycollection.createIndex({ "$**" : "text"},{ "name" : "AllTextIndex"}))

集合的文档有很多文本数据 block 。我想排除其中一些,以免获得包含与排除 block 匹配的文本的结果。

但是,我不想像下面这样定义文本索引中的每个字段,以便排除例如 NotTextSearchableBlock block :

db.application.ensureIndex({
"SearchableTextBlock1": "text",
"SearchableTextBlock2": "text",
"SearchableTextBlock3": "text"
})

这是一个文档示例:

{
"_id": "e0832e2d-6fb3-47d8-af79-08628f1f0d84",
"_class": "com.important.enterprise.acme",
"fields": {
"Organization": "testing"
},
"NotTextSearchableBlock": {
"something": {
"SomethingInside": {
"Text":"no matcheable text"
}
}
},
"SearchableTextBlock1": {
"someKey": "someTextCool"
},
"SearchableTextBlock2": {
"_id": null,
"fields": {
"Status": "SomeText"
}
},
"SearchableTextBlock3": {
"SomeSubBlockArray": [
{
"someText": "Pepe"
}
]
}
}

最佳答案

要回答您的问题,没有记录的方法可以排除文本索引中的某些字段。(请参阅 mongodb 文档中的 Text Indexes。)

如你所知:

建立text 索引时,您必须确定要索引的特定文本字段。该字段必须是字符串或字符串元素数组。

db.mycollection.createIndex({
mystringfield : "text"
mystringarray : "text"
})

您还可以使用通配符 $** 为在集合文档中找到的所有 文本编制索引。

db.mycollection.createIndex(
{ "$**" : "text" },
{ name : "mytextindex" }
)

关于mongodb - 排除 MongoDB 文本索引中的某些文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881545/

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