首页 > 解决方案 > 使用过滤器查询 Solr 进行分组

问题描述

我在 solr 中有文件,如下所述

文件 1

{ "event_name":"查看的产品", "event_property":["category","product_name","product_code","price","brand","color","discount","is_new_visitor"], "event_value ":["类别-太阳镜","product_name-david blake 灰色太阳镜","product_code-lcsgdb364x1880gryx""price-590","brand-david blake","color-grey","discount-70"], " session_id":"mf1545212054754888840", "company_id":"31", "created":1545212153, "email":"zzzz@gmail.com", "name":"zzzz" }

文件 2

{ "event_name":"添加到购物车", "event_property":["category","product_name","product_code","price","brand","color","discount","is_new_visitor"], " event_value":["category-sunglasses","product_name-david blake 灰色太阳镜","product_code-lcsgdb364x1880gryx""price-590","brand-david blake","color-grey","discount-70"], “session_id”:“mf1545212054754888840”,“company_id”:“31”,“created”:1545212153,“email”:“zzz@gmail.com”,“name”:“zzzzz”}

文件 3

{ "event_name":"查看的产品", "event_property":["category","product_name","product_code","price","brand","color","discount","is_new_visitor"], "event_value ":["类别-太阳镜","product_name-david blake 灰色太阳镜","product_code-lcsgdb364x1880gryx""price-590","brand-david blake","color-grey","discount-70"], " session_id":"mf1545212054754888841", "company_id":"31", "created":1545212153, "email":"yyyy@gmail.com", "name":"xxxxxx" } 文档有用户在事件键。现在我需要使用过滤器查询对电子邮件进行分组以查找唯一的电子邮件。我使用了下面提到的查询

http://solr-url/solr/solr-core/select?q=*:*&fq=((event_name:"product+viewed"
+AND+event_property:"product_name"+AND+event_value:"category-sunglasses")+AND+(event_name:"add+to+cart"+AND+event_property:"product_name"+AND+event_value:"category-sunglasses"))&group.limit=1&group.ngroups=true&group=true&group.field=email

作为回应,我没有收到电子邮件,例如执行这两个事件的用户,例如“产品查看”和“添加到购物车”。

标签: solr

解决方案


只需检查您的查询,过滤查询应该是 AND,应该是 OR。

fq=((event_name:"product+viewed" +AND+event_property:"product_name"+AND+event_value:"category-sunglasses")+ OR +(event_name:"add+to+cart"+AND+event_property:"product_name "+AND+event_value:"类别-太阳镜"))


推荐阅读