Solr4.7如何使用分组查询方面

技术solr4.7分组查询facet怎么使用本篇内容主要讲解“solr4.7分组查询facet怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“solr4.7分组查询fa

本文主要解释如何使用solr4.7分组查询方面。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何使用solr4.7分组查询方面”!

Solr将面向导航的查询结果称为方面。它不修改查询结果信息,而是根据分类将计数信息添加到查询结果中,然后用户根据计数信息进行进一步的查询,比如淘宝的查询列表,显示了与不同类别相关的查询结果数量。

例如,搜索数码相机将根据制造商和分辨率等维度在搜索结果列中列出,其中制造商和分辨率是方面。

然后厂商下面会有尼康、佳能、索尼等品牌,这叫约束。

接下来,根据选择,列出当前的导航路径,称为面包屑。

Solr有几个面:

普通的方面,比如从厂商品牌的维度建立事实。

查询方面时,比如根据价格,会根据价格设置多个区间,比如0-10、10-20、20-30等。

日期方面也是一个特殊的范围查询,例如按月方面。

facet的主要优点是可以任意组合搜索条件,避免无效搜索,提高搜索体验。

方面都是在查询过程中由参数指定的。例如

在http api中这样写:

引用

facet=true facet . field=manu ' Java代码solrj这样写:

query . setfacet(true);//是否分组查询

query . setrows(0);//设置返回结果的数量。如果分组查询,可以将其设置为0。

query . addfacetfield(' region ');//添加分组字段q。

query.addFacetField('主题');//添加分组字段q。

query responsiorsp=server . query(query);

//取出结果

FacetFieldfacetField=RSP . getfacetfield(' region ');

ListCountcounts=null

if(facetField!=null){ 0

counts=facetfield . getvalues();

if(算数!=null){ 0

for(count count : counts){ 0

if(count.getCount()!=0){

list region . add(count . getname()'(' count . getcount()')');

}

}

map.put('region ',list region);

}

}

FacetFieldfacetFieldTheme=RSP . getfacetfield('主题');

ListCountcountsTheme=null

nbsp;  if (facetFieldTheme != null) {
    countsTheme = facetFieldTheme.getValues();
     if (countsTheme != null) {
      for (Count count : countsTheme) {
         if (count.getCount() != 0) {
        listTheme.add(count.getName()+"("+count.getCount()+")");
      }
      }
      map.put("theme", listTheme);
     }
   }

而xml返回的结果为这样: 

<lst name="facet_fields">
            <lst name="manu">
               <int name="Canon USA">17</int>
               <int name="Olympus">12</int>
               <int name="Sony">12</int>
               <int name="Panasonic">9</int>
               <int name="Nikon">4</int>
            </lst>
</lst>

通过java代码可以这样获取facet结果:

List<FacetField> facetFields = queryResponse.getFacetFields();

在已有的查询基础上增加facet query, 可以这样写: 

solrQuery.addFacetQuery("quality:[* TO 10]")

比如对价格按照指定的区间进行facet, 可以这样加上facet后缀: 

引用

&facet=true&facet.query=price:[* TO 100] 
&facet.query=price:[100 TO 200];&facet.query=[price:200 TO 300] 
&facet.query=price:[300 TO 400];&facet.query=[price:400 TO 500] 
&facet.query=price:[500 TO *]

如果要对价格在400到500期间的产品做进一步的搜索, 那么可以这样写(使用了solr的过滤查询): 

引用

http://localhost:8983/solr/select?q=camera &facet=on&facet.field=manu&facet.field=camera_type &fq=price:[400 to 500]

注意这里的facet field不再包含price了 

如果这里对类型做进一步的查询, 那么query语句可以这样写: 

引用

http://localhost:8983/solr/select?q=camera &facet=on&facet.field=manu &fq=price:[400 to 500] &fq=camera_type:SLR 

facet的使用场景: 
1.类目导航 
2.自动提示, 需要借助一个支持多值的tag field. 
3.热门关键词排行, 也需要借助一个tag field 

到此,相信大家对“solr4.7分组查询facet怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155619.html

(0)

相关推荐

  • 清明时节雨纷纷的意思,清明时节雨纷纷的纷纷是什么意思

    技术清明时节雨纷纷的意思,清明时节雨纷纷的纷纷是什么意思雨纷纷,虽然是说天气,更有说人当时的心情,清明佳节雨纷纷,路上行人欲断魂,其实清明佳节,有多少人心里不舒服,天在下雨,人也在下雨(思念亲人的眼泪)路上那么多行人去祭

    生活 2021年10月21日
  • rnn网络训练方法(rnn在时间序列的表现)

    技术RNN如何训练并预测时序信号RNN如何训练并预测时序信号,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。上期我们一起用RNN做了一个简单的手写字分类器

    攻略 2021年12月21日
  • MyCat分库分表的示例分析

    技术MyCat分库分表的示例分析这篇文章主要为大家展示了“MyCat分库分表的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MyCat分库分表的示例分析”这篇文章吧。

    攻略 2021年11月2日
  • Spring+JPA如何集成Hibernate

    技术Spring+JPA如何集成Hibernate这篇文章主要介绍Spring+JPA如何集成Hibernate,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.JPA简介 Java Persis

    攻略 2021年11月23日
  • 择其善者而从之的从的意思,择其善者而从之的,而是什么意思

    技术择其善者而从之的从的意思,择其善者而从之的,而是什么意思而表示顺承关系,虚词,连接两个动作,无实意。补充:择其善者而从之,其不善者而改之翻译:我选择他善的方面向他学习,看到他不善的方面就对照自己改正自己的缺点.虚心好

    生活 2021年10月24日
  • 深的英文,深度的英语翻译深度用英语怎么说

    技术深的英文,深度的英语翻译深度用英语怎么说(深浅程度) degree of depth; depth:河水的深度the depth of the river;通过疏浚保持河道的深度深的英文。The depth of t

    生活 2021年10月20日