使用过滤查询Solr进行分组

时间:2018-12-19 15:54:59

标签: solr

我有如下所述的solr文档

文档1

{     “ event_name”:“已查看产品”,     “ event_property”:[“类别”,“产品名称”,“产品代码”,“价格”,“品牌”,“颜色”,“折扣”,“ is_new_visitor”],     “ event_value”:[“类别太阳镜”,“ product_name-戴维布雷克灰色太阳镜”,“ product_code-lcsgdb364x1880gryx”“ price-590”,“ brand-david blake”,“颜色灰色”,“折扣70”] ,     “ session_id”:“ mf1545212054754888840”,     “ company_id”:“ 31”,     “创建”:1545212153,     “电子邮件”:“ zzzz@gmail.com”,     “名称”:“ zzzz” }

文档2

{     “ event_name”:“添加到购物车”,     “ event_property”:[“类别”,“产品名称”,“产品代码”,“价格”,“品牌”,“颜色”,“折扣”,“ is_new_visitor”],     “ event_value”:[“类别太阳镜”,“ product_name-戴维布雷克灰色太阳镜”,“ product_code-lcsgdb364x1880gryx”“ price-590”,“ brand-david blake”,“颜色灰色”,“折扣70”] ,     “ session_id”:“ mf1545212054754888840”,     “ company_id”:“ 31”,     “创建”:1545212153,     “电子邮件”:“ zzzz@gmail.com”,     “名称”:“ zzzzz” }

文档3

{     “ event_name”:“已查看产品”,     “ event_property”:[“类别”,“产品名称”,“产品代码”,“价格”,“品牌”,“颜色”,“折扣”,“ is_new_visitor”],     “ event_value”:[“类别太阳镜”,“ product_name-戴维布雷克灰色太阳镜”,“ product_code-lcsgdb364x1880gryx”“ price-590”,“ brand-david blake”,“颜色灰色”,“折扣70”] ,     “ session_id”:“ mf1545212054754888841”,     “ company_id”:“ 31”,     “创建”:1545212153,     “电子邮件”:“ yyyy@gmail.com”,     “名称”:“ 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

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

1 个答案:

答案 0 :(得分:0)

只需检查您的查询,过滤器查询应为AND,应为OR。

fq =(((事件名称:“产品+观看次数” + AND +事件属性:“产品名称” + AND +事件值:“类别太阳镜”)+ +(事件名称:“ add + to + cart” + AND + event_property:“ product_name” + AND + event_value:“类别太阳镜”))