假设我的solr(4.10.3)表中有4个字段:
name
date
age
state
如果我做一个简单的solr查询,
http://localhost:8983/solr/core/select?q=*:*&wt=json&indent=true
其中一个字段未填入特定行,我会看到:
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"*:*",
"indent":"true",
"wt":"json"}},
"response":{"numFound":7,"start":0,"docs":[
{
"id":"1",
"name":"Brian",
"date":"2016-05-22",
"age":"5",
"_version_":1540387858163957773}]
}}
对于此查询 - 不的行已填充state
,因此未返回state
,但它有name
,{{1} }和date
,以便返回 。当我尝试将solr返回并将其添加到需要各个数组以相同顺序具有相同字段的内容时,这是非常令人沮丧的 - 所以我写了另一个脚本以便在solr响应时返回返回并添加回缺少的字段。当然,这很昂贵,而且编码我编码的代码似乎是一种可怕的方式。
我已经在线搜索过,但我还没有找到任何方法让solr返回这样的内容:
age
答案 0 :(得分:2)
如果没有提供默认值,您基本上会要求默认值,以确保返回某些内容。您可以通过提供参数default来定义每个字段的默认值。
<field name="diffType" type="string" stored="true" default=""/>
您需要重新索引以查看差异。
答案 1 :(得分:1)
在schema.xml文件中交叉检查state
字段。它应该有stored =“true”
<field name="state" type="text_general" indexed="true" stored="true"/>
如果没有,请设置stored =“true”
重新加载核心或重新启动solr。现在在响应中查询其show state
字段。
如果你没有得到空字段, 重新索引文档并再次查询,您将看到空字段。如下所示
{
"id":"DF-003",
"name":"",
"_version_":1544281838855389184
}
FYI schema.xml文件将位于conf文件夹中。