小编Dmi*_*tri的帖子

Apache HttpComponents的替代品?

所以,我得出结论,Apache HttpComponents 4是我遇到过的最烦人的API之一.看起来他们应该很简单的事情就是花费数百行代码(我仍然不确定资源是否正确清理).

另外它要我做的事情如下:

List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("q", "httpclient"));
qparams.add(new BasicNameValuePair("btnG", "Google Search"));
qparams.add(new BasicNameValuePair("aq", "f"));
qparams.add(new BasicNameValuePair("oq", null));
URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search", 
  URLEncodedUtils.format(qparams, "UTF-8"), null);
Run Code Online (Sandbox Code Playgroud)

哪个,只是......不.我知道它是Java,我们并不是整个简洁的事情,但这有点多了.更不用说罐子高达700KB.

无论如何,足够的咆哮,我想看看人们与其他HTTP客户端库有什么样的体验?

我所知道的是:Jetty,hotpotatoAsyncHttpClient.

这是为了服务器端使用,我最感兴趣的是许多并发获取和大文件传输的性能.

有什么建议?

PS我知道古老的HttpClient 3.1仍然存在,但我想使用支持的东西.

更新

@oleg:这是文档的建议:

    HttpClient httpclient = new DefaultHttpClient();
    try {
        HttpGet httpget = new HttpGet("http://www.apache.org/");
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream instream = entity.getContent();
            try { …
Run Code Online (Sandbox Code Playgroud)

java http jetty httpclient

49
推荐指数
3
解决办法
2万
查看次数

Archiva与Nexus相比如何?

已经有一些类似的问题,但大多数要么专注于Nexus vs. Artifactory,要么是几年之久.

我想了解这两天的两个项目的立场.我的印象是,Nexus是最受尊敬的存储库管理器,但我确实倾向于(稍微)更喜欢纯粹的自由项目(嘿,一点意识形态从不伤害任何人).

我的用例非常简单:我只想要一个按需依赖缓存,我们有六个自己的工件.我将与Ivy(不是Maven)一起使用它,我们不做自动构建,只有几个开发人员使用它.所以我也想知道Nexus的更高级功能是否是我不需要的东西.

在做出选择之前我应该​​注意什么?

java archiva nexus ivy maven

33
推荐指数
2
解决办法
2万
查看次数

MongoDB:匹配数组中的非空doc

我有一个如此结构的集合:

{
  _id: 1,
  score: [
    {
      foo: 'a',
      bar: 0,
      user: {user1: 0, user2: 7}
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我需要找到所有具有至少一个"得分"(得分数组中的元素)且具有特定值"bar"和非空"用户"子文档的文档.

这就是我提出的(似乎它应该工作):

db.col.find({score: {"$elemMatch": {bar:0, user: {"$not":{}} }}})
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

error: { "$err" : "$not cannot be empty", "code" : 13030 }
Run Code Online (Sandbox Code Playgroud)

还有其他办法吗?

mongodb nosql

33
推荐指数
1
解决办法
2万
查看次数

Java的轻量级B树库?

任何人都可以为Java推荐一个轻量级,快速且有希望稳定的B树(或类似)库吗?

基本上我正在寻找磁盘上的地图; BerkeleyDB JE除了我不需要事务之外,对于只读并发很好,需要大约1/10大小(BSD或Apache许可证也很好).

需要纯Java,所以没有东京/京都机柜.

实现相关Collections接口将是一个加号(或者,原始类型的模板化接口也会很好).

JDBM看起来相当不错,但它似乎在2005年被放弃了(1.0,不低于).

还有DiskBackedMap,但他们一年前发布了一个alpha版本,此后一无所获.

还有别的吗?或者上述任何经历?

想要的东西:

  • 进程间关系数据库(所以没有H2,Derby,SQLite等)
  • 分布式键值存储(没有Redis,Memcachedb,Cassandra,Voldemort,Dumbledore等)

java persistence b-tree map dbm

15
推荐指数
1
解决办法
5299
查看次数

Google App Engine(Java)上的全文搜索

关于这个主题有几个线程浮动,但我认为我的用例有些不同.

我想做的事:

  • 我的GAE/J应用程序的全文搜索组件
  • 索引大小很小:25-50MB左右
  • 我不需要对索引进行实时更新,定期重新编制索引就可以了
  • 这是为了自动完成等,所以它需要非常快(我得到的印象是在数据存储区中实现反向索引会引入相当大的延迟)

到目前为止我的策略(只是计划,尚未尝试实施任何东西):

  • 将Lucene与RAMDirectory一起使用
  • 定期cron作业创建索引,将其序列化到数据存储区,存储更新ID(或时间戳)
  • 搜索servlet在启动时加载索引并创建RAMDirectory
  • 在每个请求上,servlet检查当前的更新ID并根据需要重新加载索引

我模糊的主要问题是如何在实例之间同步内存中的数据 - 这会起作用,还是我遗漏了什么?

另外,在我开始使用内存问题之前,我可以在多大程度上推送它?我在GAE的RAM配额上找不到任何东西.(这个索引很小,但我可以想到更多我想添加的东西)

当然,有关更好方法的任何想法吗?

java lucene google-app-engine full-text-search

7
推荐指数
1
解决办法
3259
查看次数

Oracle通过JDBC直接加载INSERT?

是否可以通过JDBC在Oracle中直接加载INSERT?

我目前使用批处理的预处理语句(通过Spring JDBC),有没有办法让它们绕过NOLOGGING表上的重做日志?

这与Oracle 11g有关.

oracle jdbc oracle11g

5
推荐指数
1
解决办法
2341
查看次数

有效地计算大型数据集中的共现

最近遇到了这个面试编程测试:

  • 您将获得1000位用户最喜爱的50位艺术家名单(来自last.fm)
  • 生成一起出现至少50次的所有艺术家对的列表.
  • 解决方案无法存储在内存中,也无法评估所有可能的对.
  • 解决方案应该可以扩展到更大的数据集.
  • 解决方案不一定非精确,即您可以报告很有可能满足截止值的对.

我觉得我有一个非常可行的解决方案,但我想知道他们是否在寻找我错过的特定内容.

(如果它有所作为 - 这不是我自己的面试,所以我不是想欺骗任何未来的雇主)

以下是我的假设:

  • 有最大数量的艺术家(根据MusicBrainz为622K),而用户数量没有限制(嗯,不超过70亿,我猜).
  • 艺术家遵循"长尾"分布:一些是受欢迎的,但大多数受到极少数用户的青睐.
  • 选择截止值来选择一定比例的艺术家(大约1%,50和给定数据),因此随着用户数量的增加它将增加.

第三个要求有点模糊 - 从技术上讲,如果你有任何确切的解决方案,你"评估了所有可能的对".

实用解决方案

  1. 第一遍:将艺术家姓名转换为数字ID; 将最喜欢的数据存储在临时文件中; 记录每位艺术家的用户收藏.

    需要string-> int map来跟踪指定的id; 如果空间比速度更重要,则可以使用Patricia树(需要1/5空间和两倍于我的时间,不可否认,测试不是很严格).

  2. 第二遍:迭代临时文件; 抛弃那些没有单独地满足截止值的艺术家; 保持2d矩阵中的对数.

    将需要n(n-1)/2字节(或短路,或整数,取决于数据大小)加上数组参考开销.应该不是问题,因为n最多是622K的0.01-0.05.

这似乎可以使用少于100MB的内存处理任何大小的真实数据集.

替代解决方案

如果您不能进行多次传递(出于任何人为的原因),请使用Bloom过滤器数组来保持对数:对于您遇到的每对,找到它(可能)的最高过滤器,并添加到下一个最高过滤器.所以,第一次将它加到bf [0],第二次加到bf [1],依此类推,直到bf [49].或者可以恢复在某一点之后保持实际计数.

我没有运行数字,但最低的几个过滤器将相当大 - 这不是我最喜欢的解决方案,但它可以工作.

还有其他想法吗?

java data-mining

5
推荐指数
1
解决办法
814
查看次数

Neo4j索引(与Lucene) - 组织节点"类型"的好方法?

这实际上更像是一个Lucene问题,但它是在neo4j数据库的上下文中.

我有一个数据库,它被分为50个左右的节点类型(所以"其他类型的dbs中的"集合"或"表").每个属性都有一个需要索引的属性子集,有些属性名称相同,有些则没有.

搜索时,我总是希望找到特定类型的节点,而不是所有节点.

我可以看到三种组织方式:

  • 每类型一个索引,属性自然映射到索引字段:索引"富", 'id'='1234'.

  • 一个单独的全局索引,每个字段映射到一个属性名称,以区分该类型将其包含为value('id'='foo:1234')的一部分,或者一旦它们被返回就检查它们(我希望重复是非常罕见的).

  • 单个索引,类型是字段名称的一部分:'foo.id'='1234'.

创建后,数据库是只读的.

在便利性,大小/缓存效率或性能方面,其中之一是否有任何好处?

据我所知,对于第一个选项,neo4j将为每种类型创建一个单独的物理索引,这似乎不是最理想的.对于第三个,我最终得到的大多数lucene文档只有一小部分字段,不确定是否会影响任何内容.

java lucene indexing neo4j

5
推荐指数
1
解决办法
2015
查看次数

Java库为Postgres COPY写二进制格式?

有没有人遇到一个Java库(或只是一些代码)来编写binaryPostgres的COPY命令使用的格式?

它看起来很简单,但如果某人已经找到了正确的元组数据格式,我也可以从那里开始.

实际上,即使只是描述所有数据类型的格式也会有所帮助.

谢谢.

java postgresql

5
推荐指数
2
解决办法
2041
查看次数

在ExtJS 4柱形图中设置最大条形宽度?

我有一个250px宽的柱状图,当该系列中有10多个项目时,它看起来很棒,但是当只有2-3个项目时,条形图确实很宽,看起来有些奇怪。

   _____
  |     |
  |     |
-----|-----
Run Code Online (Sandbox Code Playgroud)

我可以在系列配置中设置宽度:

{
  style: { width: 25 }
}
Run Code Online (Sandbox Code Playgroud)

这可行,但是较细的条仍与先前位置左对齐,因此它们与轴刻度和标签不匹配。

像这样:

   _
  | |
  | |
-----|-----
Run Code Online (Sandbox Code Playgroud)

我不想更改轴间距,我想以宽间隔的25像素条形(正确位于轴刻度线居中)结束:

     _
    | |
    | |
-----|-----
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript charts extjs extjs4

2
推荐指数
1
解决办法
4740
查看次数