如何获取Solr中除多值字段外的所有字段名?
解决方法
直接修改你现在用的select查询语句做不到区分字段是否为多值字段,因为这个查询是用来返回索引中的数据内容,没法获取字段的元数据(比如multiValued这类属性)。
要实现你的需求,得分两步来:
第一步:用Solr的Schema API获取所有字段的定义信息,从中筛选出
multiValued=false的字段
发送GET请求到你的Solr实例,格式如下:http://[你的Solr地址]:[端口]/solr/[核心名]/schema/fields比如本地默认实例的话就是:
http://localhost:8983/solr/my_core/schema/fields返回的JSON结果里,每个字段都会包含
multiValued属性,你可以从中挑出值为false的字段名。第二步:用筛选后的字段名构造查询
把第一步得到的非多值字段名用逗号分隔,放到fl参数里,比如:select?q=*:*&wt=csv&rows=0&fl=id,title,price,...这样查询返回的就只有你需要的非多值字段了。
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

