我一直定期去由Bitbucket管理的一个mercurial repo.今天,当我像往常一样做出提交时,Bitbucket将提交标记为"草稿"(之前从未发生过).草案提交的任何想法是什么?
对于MongoDB文档中的此示例,如何使用MongoTemplate编写查询?
db.sales.aggregate(
[
{
$group : {
_id : { month: { $month: "$date" }, day: { $dayOfMonth: "$date" }, year: { $year: "$date" } },
totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } },
averageQuantity: { $avg: "$quantity" },
count: { $sum: 1 }
}
}
]
)
Run Code Online (Sandbox Code Playgroud)
或者一般来说,我如何按计算字段分组?
java mongodb spring-data aggregation-framework spring-mongodb
我正在尝试使用Jedis使用Spring数据Redis将消息发布到通道.这是一个非常简单的Java配置:
@Bean(name="jedisConnectionFactory")
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(redisHostName);
factory.setPort(redisPort);
factory.setUsePool(true);
return factory;
}
@Bean(name="redisTemplate")
RedisTemplate<Object, Object> redisTemplate() {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
return redisTemplate;
}
Run Code Online (Sandbox Code Playgroud)
其中redisPort = 6379,redisHostName ="localhost".
当我运行以下测试时:
@Test
public void testRedis(){
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
RedisTemplate<Object,Object> redisTemplate = (RedisTemplate<Object, Object>) context.getBean("redisTemplate");
redisTemplate.convertAndSend("test", "123");
}
Run Code Online (Sandbox Code Playgroud)
我得到以下stacktrace:
java.lang.ExceptionInInitializerError
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:252)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:58)
at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:128)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:91)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:78)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:178)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:153)
at org.springframework.data.redis.core.RedisTemplate.convertAndSend(RedisTemplate.java:676)
at com.jobvite.realtimeanalytics.redis.RedisTest.testRedis(RedisTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) …Run Code Online (Sandbox Code Playgroud) 我希望能够从属性文件中读取活动配置文件,以便可以在基于Spring MVC的Web应用程序中使用不同的配置文件配置不同的环境(dev,prod等).我知道可以通过JVM参数或系统属性设置活动配置文件.但我想通过属性文件来代替.关键是我不静态地知道活动配置文件,而是想从属性文件中读取它.看起来这是不可能的.例如,如果我在application.properties中有'spring.profiles.active = dev',并允许在override.properties中覆盖它,如下所示:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:/application.properties</value>
<value>file:/overrides.properties</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
该配置文件未在环境中被拾取.我想这是因为在bean初始化之前正在检查活动的配置文件,因此不尊重在属性文件中设置的属性.我看到的唯一另一个选项是实现一个ApplicationContextInitializer,它将按优先级顺序加载这些属性文件(如果存在则覆盖首先是override.properties,否则是application.properties)并在context.getEnvironment()中设置值.有没有更好的方法从属性文件中执行此操作?
我正在尝试在Spark中实现的Collaborative Filtering算法,并且遇到了以下问题:
假设我使用以下数据训练模型:
u1|p1|3
u1|p2|3
u2|p1|2
u2|p2|3
Run Code Online (Sandbox Code Playgroud)
现在如果我用以下数据测试它:
u1|p1|1
u3|p1|2
u3|p2|3
Run Code Online (Sandbox Code Playgroud)
我从未看到用户'u3'的任何评级,大概是因为该用户没有出现在训练数据中.这是因为冷启动问题吗?我的印象是这个问题只适用于新产品.在这种情况下,我预计会对'u3'进行预测,因为训练数据中的'u1'和'u2'具有与'u3'类似的评级信息.这是基于模型和基于内存的协同过滤之间的区别吗?
spring-data ×2
apache-spark ×1
bitbucket ×1
java ×1
mercurial ×1
mongodb ×1
spring ×1
spring-mvc ×1