gpt4 book ai didi

ruby - Mongo 2.4 文本命令/使用 mongo-ruby-driver 的全文搜索

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:07 25 4
gpt4 key购买 nike

我想对我的收藏执行全文搜索。因为我使用的是 mongo 2.4,所以我想用 mongodb 的 text command 来做

在 mongo 的控制台中执行此操作的方法是(根据 mongo 的官方文档。)

db.collection.runCommand( "text", { search: <string> })

它返回预期的结果。

现在,我想在 ruby​​/rails 中实现同样的目标。我正在使用 mongo gem 版本 1.8.4

根据他们的 change log/history支持新的 MongoDB 2.4 索引类型

但是我如何使用 ruby​​ 在集合上运行 text 命令

我经历了这个blog post .但它没有帮助

更新:

我试过了,

  command = BSON::OrderedHash.new
command['find'] = collection
command['text'] = {'search' => 'string'}
result = @db.command(command)

但是它给了

Database command 'find' failed: (ok: '0.0'; errmsg: 'no such cmd: find'; bad cmd: '{"find"=>"project", "text"=>{"search"=>"string"}}').

更新 2:

php 存在类似情况.我正在寻找 ruby​​ 的等价物。

最佳答案

你只需要在 Ruby 1.8 中使用 BSON::OrderedHash。如果您运行的是 Ruby 1.9 或更高版本,则可以使用以下语法在文本索引上创建/查询。

require 'mongo'
include Mongo

client = MongoClient.new
db = client['my_database']
coll = db['my_collection']

# create a text index
coll.ensure_index({:field_name => Mongo::TEXT})

# run a text query
db.command({:text => 'my_collection', :search => 'search string'})
db.command({:text => 'my_collection', :search => 'search string', :filter => {:foo => 'bar'}})

关于ruby - Mongo 2.4 文本命令/使用 mongo-ruby-driver 的全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15741690/

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