当前位置: 首页 > 知识库问答 >
问题:

为什么我不能使用Ruby驱动程序获得MongoDB2.6文本搜索分数?

魏君博
2023-03-14

mongoDB v2.6.2

宝石'Mongo','~>1.10.2'

require 'mongo'
mongo_client = Mongo::MongoClient.new("localhost", 27017)
db = mongo_client.db("mydb")
coll = db.collection("testCollection")
coll.find({ "$text" => { "$search" => "one two three" } }).to_a
coll.find({ "$text" => { "$search" => "one two three" } }, { "score" => { "$meta" => "textScore" }}).to_a

RuntimeError:未知选项[{“score”=>{“$meta”=>“textscore”}}]

共有1个答案

符懿轩
2023-03-14

投影的字段选择与ruby驱动程序的工作方式略有不同。您需要将投影指定为:fields:

require 'mongo'
include Mongo

client = MongoClient.new
db = client['test']
coll = db['text']

puts coll.find(
  { "$text" => { "$search" => "one two three" } },
  { :fields => [{ "score" => { "$meta" => "textScore" } }] }
).to_a
 类似资料:
  • 问题内容: 我是全文搜索的新手,我使用以下查询 学生表包含数百万条随机记录,看起来像这样的“ QZAQHIEK VABCNLRM KFFZJYUU” 仅用了2秒,就产生了1100行。 如果在两秒钟内搜索了百万条记录,为什么我还要使用全文搜索呢? Like谓词是否也使用了全文索引? 问题答案: 我认为您已经回答了自己的问题,至少感到满意。如果您的原型制作在可接受的时间内产生了结果,并且您确信高速缓存

  • 这是:“Parent root=fxmlloader.load(getClass().getResource(”sample.fxml“));” 我不明白剩下的部分,所以我希望你能轻松地解决这个问题:)

  • 嗨,这让我感到困惑,我正在尝试搜索我的文件中的选定数字,然后用该行的其余部分显示该数字,问题是我的程序似乎在我搜索它时返回第一行内容,但当我键入搜索它们时不会返回第二行或第三行 我的 txt 文件内容 我正在寻找的输出 当我键入2或3以查找项目时,我的程序不显示任何问题,我该如何解决它?

  • 我有一个简单的代码 我觉得我身边少了点什么。 谢谢你的帮助。

  • UTCDateTime的var_dump显示有效值: 对象(MongoDB\bson\utcdatetime)#477(1){[“毫秒”]=> 字符串(10)“1515954053”} 预期返回的文档示例: UPDATE:删除发送到UTCDateTime对象的变量,如下所示: 作品(如上面所示,我在将来添加了一个记录)。问题是当我发送变量来指定我需要的时间戳时。

  • 我正在编写C代码来读取包含多行单词的文本文件。对于文本文件中的每一行,我想标记字符串以删除空格。 例如,假设要读取的文本文件名为“testlist.txt”,内容为: 其中下划线表示空格,“\n”字符不可见。程序输出应为: 将输出以下代码: 第二次打印“Token:”后没有换行。此外,我希望getline()能够获得testlist的下一行。txt,以使进程重复,但程序已完成执行/终止,没有错误/