多个连接字段上的Solr镶嵌面
我需要一种方法来获得两个组合字段名上的facet。为了向您展示我的意思,请查看查询的现状:多个连接字段上的Solr镶嵌面,solr,Solr,我需要一种方法来获得两个组合字段名上的facet。为了向您展示我的意思,请查看查询的现状: { "responseHeader":{ "status":0, "QTime":16, "params":{ "facet":"true", "indent":"true", "q":"productId:(1 OR 2 OR 3 OR 4)", "facet.field":["productMetaType",
{
"responseHeader":{
"status":0,
"QTime":16,
"params":{
"facet":"true",
"indent":"true",
"q":"productId:(1 OR 2 OR 3 OR 4)",
"facet.field":["productMetaType",
"productId"],
"rows":"10"}},
"response":{"numFound":4,"start":0,"docs":[
{
"productId":1,
"productMetaType":"PRIMARY_PHOTO",
"url":"1_PRIM.JPG"},
{
"productId":1,
"productMetaType":"OTHER_PHOTO",
"url":"1_1.JPG"},
{
"productId":1,
"productMetaType":"OTHER_PHOTO",
"url":"1_2.JPG"},
{
"productId":2,
"productMetaType":"OTHER_PHOTO",
"url":"2_1.JPG"}]
},
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"productMetaType":[
"PRIMARY_PHOTO",1,
"OTHER_PHOTO",3],
"productId":[
"1",3,
"2",1]},
"facet_dates":{},
"facet_ranges":{}
}
}
我得到两个方面字段,productMetaType
和productId
。我需要做的是以某种方式将这些字段组合起来,以便像这样获取数据:
1_PRIMARY_PHOTO, 1,
1_OTHER_PHOTO, 2,
2_PRIMARY_PHOTO, 0,
2_OTHER_PHOTO, 1
pivot功能可以做到这一点吗?不幸的是,我们正在运行Solr3.1,所以pivot不可用,但如果这是唯一的方法,我可能有一些弹药可以升级
我唯一能想到的另一件事是如何连接字段名。我是Solr的新手,不知道什么是可能的。任何建议或帮助都将不胜感激。谢谢您的时间。是的,Pivot可以实现这一点,但正如您所观察到的,此功能仅在Solr trunk中可用 你把这两个领域结合起来的想法也会奏效。事实上,如果字段的值数量有限,最简单、最灵活的方法是使用:
- productId:1和productMetaType:PRIMARY\u照片
- productId:2和productMetaType:OTHER\u照片
- productId:1和productMetaType:OTHER\u照片
- productId:2和productMetaType:PRIMARY\u照片
否则,只需在Solr schema.xml中创建一个字符串类型的新字段,通过像以前一样添加文档来重新创建索引,但使用这个新字段(您可以根据需要生成,使用“u”作为两个字段值之间的分隔符将非常有效)。效果非常好!谢谢现在,如果能够在响应中命名这些方面查询,那么我就不必解析查询来确定如何处理应用程序中的数据。无论如何,我都能做到。再次感谢!我现在没有要测试的Solr实例,但我认为您可以使用本地参数中的一个关键参数来实现这一点。看见