我需要一种方法来获得两个组合字段名称的方面。为了向您展示我的意思,请查看现在的查询:
{
"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
枢轴功能是否可以执行此操作?不幸的是,我们正在运行Solr 3.1,因此无法使用数据透视表,但如果这是唯一的方法,我可能需要一些弹药进行升级。
我能想到的另一件事就是如何连接字段名称。我是索尔的新手,不知道什么是可能的。任何建议或协助表示赞赏。谢谢你的时间。
答案 0 :(得分:4)
是的,Pivot可以解决问题,但正如您所观察到的,此功能仅在Solr主干中可用。
你将两个领域结合起来的想法也会奏效。实际上,如果您的字段的值有限,最简单,最灵活的方法是使用facet queries:
否则,只需在您的Solr schema.xml中使用字符串类型创建一个新字段,通过添加您之前的文档来重新创建索引,但是使用这个新字段(您可以根据需要生成,使用'_'作为两个字段值之间的分隔符可以很好地工作。)