如何在Solr客户端中创建interval facet

uemypmqf  于 2023-11-18  发布在  Solr
关注(0)|答案(1)|浏览(265)

我想使用Solr客户端设置以下搜索

  1. select?facet=on&facet.field=Score&facet.interval=Score&f.Score.facet.interval.set=[0,10]&f.Score.facet.interval.set=[21,25]&f.Score.facet.interval.set=[26,35]&f.Score.facet.interval.set=[36,40]&f.Score.facet.interval.set=[41,45]&f.Score.facet.interval.set=[46,50]&q=*

字符串
预期结果如下:

  1. "facet_counts":{
  2. "facet_queries":{},
  3. "facet_fields":{
  4. "Score":[
  5. "27",2,
  6. "41",3,
  7. ......
  8. "31",2]},
  9. "facet_ranges":{},
  10. "facet_intervals":{
  11. "Score":{
  12. "[0,10]":0,
  13. "[11,25]":12,
  14. "[26,35]":18,
  15. "[36,40]":9,
  16. "[41,45]":7,
  17. "[46,50]":2,}},
  18. "facet_heatmaps":{}}}


添加facet字段后

  1. $query->addFacetField('Score');


如何设置facet interval?如何删除facet_interval中计数为0的结果?

v6ylcynt

v6ylcynt1#

要在Solr Client中创建间隔facet并设置所需的facet间隔,可以使用facet.interval参数沿着和f.Score.facet.interval.set参数来指定间隔范围。

  1. // Enable facet
  2. $query->addParam('facet', 'true');
  3. // Add the facet field
  4. $query->addFacetField('Score');
  5. // Set the facet interval ranges
  6. $query->addParam('facet.interval', 'Score');
  7. $query->addParam('f.Score.facet.interval.set', '[0,10]');
  8. $query->addParam('f.Score.facet.interval.set', '[11,25]');
  9. $query->addParam('f.Score.facet.interval.set', '[26,35]');
  10. $query->addParam('f.Score.facet.interval.set', '[36,40]');
  11. $query->addParam('f.Score.facet.interval.set', '[41,45]');
  12. $query->addParam('f.Score.facet.interval.set', '[46,50]');

字符串
要删除facet_intervals中计数为0的结果,可以使用facet.mincount参数并将其设置为1。
这将从面结果中排除计数为0的任何区间。

  1. $query->add('facet.mincount', '1');


通过使用此代码,您可以启用facet,将Score字段添加为facet字段,并使用f.Score.facet.interval.set参数设置所需的间隔范围。

展开查看全部

相关问题