我已经浏览了本网站上的相关问题,但没有找到相关的解决方案.
使用表单的HTTP请求查询我的Solr4索引时
&facet=true&facet.field=country
Run Code Online (Sandbox Code Playgroud)
响应包含所有不同国家/地区以及每个国家/地区的计数.
如何使用SolrJ获取此信息?我尝试过以下方法,但它只返回所有国家/地区的总计数,而不是每个国家:
solrQuery.setFacet(true);
solrQuery.addFacetField("country");
Run Code Online (Sandbox Code Playgroud)
以下似乎有效,但我不想事先明确设置所有分组:
solrQuery.addFacetQuery("country:usa");
solrQuery.addFacetQuery("country:canada");
Run Code Online (Sandbox Code Playgroud)
其次,我不确定如何从QueryResponse对象中提取构面数据.
所以有两个问题:
1)使用SolrJ如何在字段上进行分面并返回分组而不明确指定组?
2)使用SolrJ如何从QueryResponse对象中提取构面数据?
谢谢.
更新:
我也尝试过类似谢尔盖的回应(下图).
List<FacetField> ffList = resp.getFacetFields();
log.info("size of ffList:" + ffList.size());
for(FacetField ff : ffList){
String ffname = ff.getName();
int ffcount = ff.getValueCount();
log.info("ffname:" + ffname + "|ffcount:" + ffcount);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了大小= 1的ffList,循环经历了1次迭代.在输出ffname ="country"中,ffcount是与原始查询匹配的总行数.
这里没有每个国家的细分.
我应该提一下,在同一个solrQuery对象上,我也调用了addField和addFilterQuery.不确定这是否会影响到分面:
solrQuery.addField("user-name");
solrQuery.addField("user-bio");
solrQuery.addField("country");
solrQuery.addFilterQuery("user-bio:" + "(Apple OR Google OR Facebook)");
Run Code Online (Sandbox Code Playgroud)
更新2:
我想我得到了它,再次基于谢尔盖在下面说的话.我使用FacetField.getValues()提取了List对象.
List<FacetField> fflist = resp.getFacetFields();
for(FacetField ff : fflist){
String ffname = ff.getName();
int ffcount = ff.getValueCount();
List<Count> …Run Code Online (Sandbox Code Playgroud) 我有一个配方,用于设置从EC2实例的crontab运行的作业.这是我正在运行的食谱的示例:
cron "examplejob" do
minute "0"
hour "2"
command "job"
user "job"
end
Run Code Online (Sandbox Code Playgroud)
这非常有效.除了这个cron作业,我还想在crontab中设置一些环境变量.阅读本文,似乎应该可以使用"path"属性.但是,我无法找到如何实现此功能的具体示例.
我试过了:
cron "env" do
path "MY_VAR=/path/for/variable"
end
Run Code Online (Sandbox Code Playgroud)
但这不起作用.如何在crontab的顶部设置环境变量?有任何见解赞赏!谢谢.
我正在使用亚马逊EMR,我能够运行大多数工作.当我开始加载并在EMR集群中生成更多数据时,我遇到了问题.群集用完了存储空间.
每个数据节点都是c1.medium实例.根据这里和这里的链接,每个数据节点应该有350GB的实例存储.通过ElasticMapReduce Slave安全组,我已经能够在我的AWS控制台中验证c1.medium数据节点正在运行并且是实例存储.
当我在namenode上运行hadoop dfsadmin -report时,每个数据节点都有大约10GB的存储空间.运行df -h可以进一步验证这一点
hadoop@domU-xx-xx-xx-xx-xx:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 2.6G 6.8G 28% /
tmpfs 859M 0 859M 0% /lib/init/rw
udev 10M 52K 10M 1% /dev
tmpfs 859M 4.0K 859M 1% /dev/shm
Run Code Online (Sandbox Code Playgroud)
如何配置我的数据节点以使用完整的350GB存储启动?有没有办法使用引导操作执行此操作?
hadoop amazon-ec2 amazon-web-services elastic-map-reduce emr
amazon-ec2 ×2
chef-infra ×1
chef-recipe ×1
emr ×1
hadoop ×1
java ×1
solr ×1
solr4 ×1
solrj ×1
ubuntu ×1