CSV 中返回的 Solr 多值字段
Posted
技术标签:
【中文标题】CSV 中返回的 Solr 多值字段【英文标题】:Solr MultiValued fields returned in a CSV 【发布时间】:2016-05-10 20:56:24 【问题描述】:我正在尝试编写一个 Solr 查询,该查询与 Hive 的 LATERAL EXPLODE 类似,并以 CSV 格式返回结果。我想为多值字段中的每个值返回一个“行”并复制“父”值。
这是我的查询...
http://localhost:8983/solr/select?q=*%3A*&fl=parent,id&wt=csv
返回此输出。
parent,id
10,"4100,4435"
11,"376,190,4542"
12,"141,142"
但是,我希望查询结果返回如下内容:
parent,id
10,4100
10,4435
11,376
11,190
11,4542
12,141
12,142
Solr 可以做到这一点吗?
【问题讨论】:
【参考方案1】:非规范化您的数据并使用 Solr 的 Result Grouping。
像这样存储数据:
parent,id,id_group
10,"4100","4100,4435"
10,"4435","4100,4435"
11,"376","376,190,4542"
11,"190","376,190,4542"
11,"4542","376,190,4542"
12,"141","141,142"
12,"142","141,142"
现在,当您想要为每个多值字段设置一行时。
查询: http://localhost:8983/solr/awesome-collection/select?q=*:*&fl=parent,id&wt=json&indent=true
结果:
parent,id
10,4100
10,4435
11,376
11,190
11,4542
12,141
12,142
当你想将数据分组时
查询: http://localhost:8983/solr/awesome-collection/select?q=*:*&fl=parent,id_group&wt=json&indent=true&group=true&group.field=parent&group.format=simple
结果:
parent,id_group
10,"4100,4435"
11,"376,190,4542"
12,"141,142"
【讨论】:
以上是关于CSV 中返回的 Solr 多值字段的主要内容,如果未能解决你的问题,请参考以下文章
Solr - 按多值字段上的OR搜索的最大匹配对结果进行排序
solr 通过配置多值字段动态字段来解决文本表达式查询精确到句子的问题