如何查询Solr以获取带有所有以字符串开头的字段名的列表?

时间:2019-04-02 11:58:48

标签: solr solr6

我想基于Solr索引对象的字段名称创建输出。

我所拥有的就是这样的对象:

{
    "Id":"ID12345678",
    "GroupKey":"Beta",
    "PricePackage":5796.0,
    "PriceCoupon":5316.0,
    "PriceMin":5316.0
}

Price*字段因对象而异,其中某些字段可能有三个以上,有些则更少,但是它们始终以Price为前缀。

如何查询Solr以获取包含所有以Price开头的所有字段名称的列表?

作为所有示例,我已经研究了过滤器,构面,但找不到有关如何执行此操作的任何线索-例如正则表达式方面-与字段值有关,而不与字段名称本身有关。或至少我无法适应它。

1 个答案:

答案 0 :(得分:1)

如果查询0个文档并使用csv响应编写器(wt参数)生成字段名称列表,则可以获取所有现有字段名称的逗号分隔列表。

例如,如果您请求/solr/collection/select?q=*:*&wt=csv,则会获得所有字段的列表。如果只想为字段添加价格前缀,则还可以添加字段列表参数(fl)来限制字段。

因此,对/solr/collection/select?q=*:*&wt=csv&fl=Price*的请求应返回以下响应:

PricePackage,PriceCoupon,PriceMin

使用此解决方案,您可以获得所有现有字段,包括动态字段。