Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB中的全文搜索未生成“的预期结果”@@@&引用;_Mongodb_Mongodb Query - Fatal编程技术网

MongoDB中的全文搜索未生成“的预期结果”@@@&引用;

MongoDB中的全文搜索未生成“的预期结果”@@@&引用;,mongodb,mongodb-query,Mongodb,Mongodb Query,因此,我在一个集合中有一个文档,其中有一个字段的值为“@@@ 我为集合编制了索引,并尝试运行查询: db.getCollection('TestCollection').find({$text:{$search:\'@@@@\'}) 但它没有显示结果 我怎样才能解决这个问题 样本文件: { "_id" : ObjectId("5b90dc6d3de8562a6ef7c409"), "field" : "value", "field2" : "@@@" } 您的查询必须包含多个大括号,请删除它们

因此,我在一个集合中有一个文档,其中有一个字段的值为“@@@ 我为集合编制了索引,并尝试运行查询:

db.getCollection('TestCollection').find({$text:{$search:\'@@@@\'})

但它没有显示结果

我怎样才能解决这个问题

样本文件:

{
"_id" : ObjectId("5b90dc6d3de8562a6ef7c409"),
"field" : "value",
"field2" : "@@@"
}

您的查询必须包含多个大括号,请删除它们:

db.getCollection('so2').find({$text:{$search:"\"@@@\""}})
如果您运行它,Mongo会告诉您缺少文本索引。添加如下内容:

db.so2.createIndex( { field2: "text" } )

您使用的值非常小。请尝试使用更长的值。

文本搜索旨在根据字符串索引。文本索引包括两个一般步骤:(将字符串转换为感兴趣的单个术语)然后(将每个术语转换为根形式,以便根据特定语言的规则进行索引)

在标记化步骤中,某些字符(例如,
@
等标点符号)被分类为单词分隔符(又称分隔符),而不是文本输入,并用于将原始字符串分隔为术语。特定语言(如英语中的“the”、“is”或“on”)也不包括在文本索引中

由于搜索短语
@@@
完全由分隔符组成,因此文本索引中没有相应的条目


如果要匹配通用字符串模式,应该使用而不是文本搜索。例如:
db.getCollection('TestCollection').find({field2://@@@/})
。但是,请注意正则表达式的注意事项。

发布一个相关文档的示例。您可能希望查看此示例,包括注释:搜索
@@@@code>的目标是什么?这是什么的占位符吗?这根本不能回答问题。虽然我同意在他的$search中有一组不必要的大括号,但问题在于没有返回结果的特殊字符。Mongo可能不会告诉他他丢失了一个文本索引,因为他说他已经创建了一个。我想你在测试时错过了索引。查询的长度无关紧要。@Clouren我已经为查询中的所有字段创建了一个文本索引collection@PrateekNarendra我建议发布一个新问题,详细说明您试图实现的实际结果(而不是这种文本搜索方法,如果您想匹配
@@@@code>,这种方法将不起作用)。在用例中加入特定版本的MongoDB server和更多上下文(例如附加的示例文档和对
@@@@code>重要性的解释)会很有帮助。正则表达式肯定有使用注意事项,而且可能有更有效的方法对数据建模以支持搜索用例。