【发布时间】:2014-12-30 05:41:35
【问题描述】:
我的模型category、tags 中有一些字段,其中包含大量text
以以下数据为例,
应该通过这些搜索关键字Iron、Pig、Academic Data找到它
{
"_id" : "M0130AUSM561NNBR",
"name" : "Pig Iron Production for United StatesMonthly, Not Seasonally Adjusted, ",
"categories" : [
"Production of Commodities",
"NBER Macrohistory Database",
"Academic Data"
],
"tags" : "[\"iron\", \"metals\", \"nber\", \"production\", \"monthly\", \"nation\", \"usa\", \"nsa\"]",
"updated_at" : ISODate("2014-12-30T03:38:13.954Z"),
"created_at" : ISODate("2014-12-30T03:38:13.954Z")
}
我尝试通过Indicator.text_search("Pig")查询
但我一无所获
irb(main):005:0> Indicator.text_search("Pig")
=> #<Mongoid::Contextual::TextSearch
selector: {}
class: Indicator
search: Pig
filter: {}
project: N/A
limit: N/A
language: default>
尝试使用Indicator.any_of({ :text => /.*Production.*/ })搜索
我还是一无所获。
=> #<Mongoid::Criteria
selector: {"$or"=>[{"text"=>/.*Production.*/}]}
options: {}
class: Indicator
embedded: false>
尝试在 mongo 控制台中搜索,仍然无法正常工作(结果中没有任何内容)
> db.indicators.find({"title": /.*Production.*/})
>
模型:Indicator.rb
class Indicator
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Attributes::Dynamic
# include Mongoid::Search
field :id, type: String
field :name, type: String
field :category, type: String
field :tags, type: String
# search_in :tags, :category
end
【问题讨论】:
标签: ruby-on-rails mongodb activerecord mongoid mongodb-query