小编Gir*_*Rao的帖子

使用SolrJ和Solr4进行刻面

我已经浏览了本网站上的相关问题,但没有找到相关的解决方案.

使用表单的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)

java solr faceted-search solrj solr4

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

如何使用Chef在crontab中设置环境变量?

我有一个配方,用于设置从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的顶部设置环境变量?有任何见解赞赏!谢谢.

ubuntu amazon-ec2 chef-infra chef-recipe

4
推荐指数
1
解决办法
3017
查看次数

Amazon EMR:在数据节点上配置存储

我正在使用亚马逊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

3
推荐指数
1
解决办法
1577
查看次数