Solr:从solr索引中检索字段名称?

flo*_*lus 23 solr

如何查询所有(或前缀)字段名称的solr实例?

我想使用动态字段

category_0_s
category_1_s
...
Run Code Online (Sandbox Code Playgroud)

但我不知道有多少可能存在.所以我想检索所有字段(最好使用前缀"category_").

有任何想法吗?谢谢

Goa*_*sed 34

此查询将返回以逗号分隔的列表,其中包含正在使用的所有字段,包括动态字段.

select?q=*:*&wt=csv&rows=0&facet
Run Code Online (Sandbox Code Playgroud)

要回答原始问题,这是如何获取以category_开头的所有字段的列表

select?q=*:*&wt=csv&rows=0&facet&fl=category_*
Run Code Online (Sandbox Code Playgroud)

facet需要存在参数才能使此查询在较新版本的Solr上运行.在旧版本中,它可以在没有它的情况下工作.

在旧版本中,fl参数中的通配符将不起作用.

  • 在Solr5中,包括`facet`和`facet.field`都会导致400 Bad Request,但仍包含字段.离开`facet.field`返回字段并获得200 Success (2认同)
  • 奇怪,为什么这只适用于 csv 作为返回格式?为什么我不能将其作为 JSON 获取?(这里是 Solr 新手) (2认同)

Pas*_*imo 21

使用luke处理程序:

http://solr:8983/solr/admin/luke?numTerms=0
Run Code Online (Sandbox Code Playgroud)

使用xpath获取具有与您要查找的动态字段定义匹配的标记dynamicBase的所有字段.