返回solr查询中的空字段

时间:2016-09-01 14:50:24

标签: javascript solr

假设我的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

2 个答案:

答案 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文件夹中。