我有一个包含大约100万个文档的MongoDB.这些文档都有一个字符串,表示一个1位和0位的256位bin,如:
0110101010101010110101010101
理想情况下,我想查询近二进制匹配.这意味着,如果两个文件具有以下数字.是的,这是汉明距离.
Mongo目前不支持此功能.所以,我不得不在应用程序层中这样做.
因此,鉴于此,我试图找到一种方法来避免在文档之间进行单独的汉明距离比较.这使得时间基本上不可能完成.
我有很多内存.并且,在ruby中,似乎有一个伟大的宝石(算法)可以创建许多树,我似乎没有任何工作(还)可以减少我需要做的查询数量.
理想情况下,我想制作100万个查询,找到接近重复的字符串,并能够更新它们以反映这一点.
任何人的想法将不胜感激.
我有一个相当大的,2.3升级到Rails 3应用程序,这足够胖它没有通过Heroku的60秒启动门,因此它崩溃了.我已经做了很多工作来最小化Gems和初始化器中的加载时间,但是有一些随机过程是燃烧时间,我不确定它是什么.我可以用另一双眼睛.
这是带有config.ru,application.rb和environment.rb以及Gemfile的GIST.
https://gist.github.com/2026140
任何想法将不胜感激.
我有一个ElasticSearch模型(由Tire持有,没有ActiveRecord).如果我查询它,我得到一些方面的结果(如预期的那样).
The format is:
class Mention
include Tire::Model::Persistence
index_name 'mentions'
# basic display attributes
property :created_at, :type => 'date'
end
Run Code Online (Sandbox Code Playgroud)
查询返回结果很好.当我检查返回的日期时,我收到一个字符串.
1.9.2p320 :046 > a.results[0].created_at
=> "2012-12-26T02:55:50+01:00"
1.9.2p320 :047 > a.results[0].created_at.class
=> String
1.9.2p320 :048 > a.results[1].created_at
=> "2012-12-26T02:55:50+01:00"
1.9.2p320 :049 > a.results[2].created_at
=> "2012-12-26T02:56:33+01:00"
1.9.2p320 :050 > a.results[2].created_at.class
=> String
Run Code Online (Sandbox Code Playgroud)
我有一个简单的facet返回date_histogram,只是为了检索与查询匹配的日期结果量.格式如下:
facet 'volumes' do
date :created_at
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎回归了一个疯狂的Unix时间戳.
1.9.2p320 :069 > d = a.helper.facets["volumes"]["entries"][0]["time"].to_s
=> "1356307200000"
1.9.2p320 :070 > d.class
=> String
1.9.2p320 :071 > Date.strptime(d, "%s")
=> Sun, …Run Code Online (Sandbox Code Playgroud)