SOLR多选择切面,多值字段和标记和排除过滤器

  • 本文关键字:排除 过滤器 字段 选择 SOLR solr
  • 更新时间 :
  • 英文 :


我使用了标签和排除滤镜功能来实现多选择切面。

这些是我的示例数据:

<doc>         
<field name = "internalid">001</field>     
<field name = "title">Book 1</field>     
<field name = "documentType">Book</field>     
<field name = "categoryTag">Car</field>
<field name = "categoryTag">Bicycle</field>
</doc> 
<doc>       
<field name = "internalid">002</field>     
<field name = "title">Book 2</field>     
<field name = "documentType">Book</field>     
<field name = "categoryTag">Car</field>
<field name = "categoryTag">Motobike</field>
</doc> 
<doc>         
<field name = "internalid">003</field>     
<field name = "title">Book 3</field>     
<field name = "documentType">Book</field>     
<field name = "categoryTag">Bicycle</field>
</doc> 

我的请求:

http://localhost:8983/solr/test_collection/select?q=*:*&facet=true&fq={!tag=categoryTag}categoryTag:Car&facet.field={!ex=categoryTag}categoryTag

反应:

"facet_fields":{
"categoryTags":[
"Car",2,
"Bicycle",2,
"Motobike",1]}
所以我想要实现的是预先计算如果我加上"自行车",会得到多少结果?作为附加的OR过滤条件。对于单值字段,我只需求和&;Car(2)+Bicycle(2)=4"。但这里我有一个交集第一个条目包含两个标签&;car &;和";Bicycle"。所以正确的预计算应该是"3";在这里。我在谷歌上搜索了很多,但没有找到合适的解决方案。如果能找到一个好的方法,我将非常高兴。

致以最亲切的问候。

非常感谢您的投入!!

我认为Pivot, JSON Facet API甚至Group结果都不会做这里实际需要的。

这是我的解。

第一个查询:

?q=*:*&facet=true&fq={!tag=categoryTag}categoryTag:Car&facet.field={!ex=categoryTag}categoryTag

第二个查询:

?q=*:*&facet=true&fq=categoryTag:Car&facet.field=categoryTag

第一个结果:

"facet_fields":{
"categoryTag":[
"Car",2,
"Bicycle",2,
"Motobike",1]}

第二个结果:

"facet_fields":{
"categoryTag":[
"Car",2,
"Bicycle",1,
"Motobike",1]}

标签" bicycle ";

2(Bicycle-Result1)+2(CAR-Result1 - SUM all selected)-1(Bicycle-Result2)=3

标签"Motobike";

1(Motobike-Result1)+2(CAR-Result1 - SUM all selected)-1(Motobike-Result2)=2

这是目前为止我能确定的唯一解决方案。

相关内容

  • 没有找到相关文章

最新更新