Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache solr无法为JSON文件编制索引_Json_Apache_Solr - Fatal编程技术网

Apache solr无法为JSON文件编制索引

Apache solr无法为JSON文件编制索引,json,apache,solr,Json,Apache,Solr,我是ApacheSolr的新手,做了一些研究并学习了如何编制索引。 目前我面临JSON文件索引的问题 我无法为下面提到的JSON文件数据格式编制索引。 删除“documents”数组后,我可以执行以下操作。 不知道为什么会这样 我没有添加任何配置schema.xml文件。 尝试使用apache solr中的一些示例,这些示例是我能够进行索引的 还有,schema.xml文件中id的用途是什么? 如果我的json包含employid,我可以添加employid而不是“id”吗 能找个人帮忙吗 豁免

我是ApacheSolr的新手,做了一些研究并学习了如何编制索引。 目前我面临JSON文件索引的问题

我无法为下面提到的JSON文件数据格式编制索引。 删除“documents”数组后,我可以执行以下操作。 不知道为什么会这样

我没有添加任何配置schema.xml文件。 尝试使用apache solr中的一些示例,这些示例是我能够进行索引的

还有,schema.xml文件中id的用途是什么? 如果我的json包含employid,我可以添加employid而不是“id”吗

能找个人帮忙吗

豁免详情:

"org.apache.solr.common.SolrException"],"msg":"Error parsing JSON field value. Unexpected OBJECT_START at [227], field=documents","code":400}}

您必须为要插入的文档定义对应的架构
此外,在文档之后还有一个额外的

"documents": [{
  "language": "EN",
  "fileName": "Helloworld.pdf",
  "fileExists": true,
  "employid": "E64492"
}],
关于
id
字段,您可以将其重命名为
employee\u id
,但也要记住将标签
id
更改为employee\u id


您还可以拥有一个没有
唯一\u键的架构。查看有关唯一键的详细信息。

您必须为要插入的文档定义对应的架构
此外,在文档之后还有一个额外的

"documents": [{
  "language": "EN",
  "fileName": "Helloworld.pdf",
  "fileExists": true,
  "employid": "E64492"
}],
关于
id
字段,您可以将其重命名为
employee\u id
,但也要记住将标签
id
更改为employee\u id

您还可以拥有一个没有
唯一\u键的架构。查看有关唯一键的更多信息。

中解释了该问题,但在所有文本中很难看到它

处理JSON基本上有两种方法:

  • Solr输入格式,可直接使用Solr约定指定字段和递归结构。在这种格式中,当您明确了解每个对象的结构时,可以将多个JSON对象提供给解析器
  • 按照您指定的规则映射到Solr文档的通用JSON格式(或默认情况下在集合的solrconfig.xml中指定的格式)
  • 您使用的数组语法用于第一个选项-Solr输入格式。但是,该格式不支持对象其余部分的嵌套文档,它需要一个_childDocuments_数组

    通用JSON解析器只能接受一个对象

    因此,你正处在十字路口,需要决定你想做什么。这很可能意味着要考虑最终使用的模式,以及是要显式地定义它还是通过映射规则来定义它。

    中对该问题进行了解释,但在所有文本中很难看到它

    处理JSON基本上有两种方法:

  • Solr输入格式,可直接使用Solr约定指定字段和递归结构。在这种格式中,当您明确了解每个对象的结构时,可以将多个JSON对象提供给解析器
  • 按照您指定的规则映射到Solr文档的通用JSON格式(或默认情况下在集合的solrconfig.xml中指定的格式)
  • 您使用的数组语法用于第一个选项-Solr输入格式。但是,该格式不支持对象其余部分的嵌套文档,它需要一个_childDocuments_数组

    通用JSON解析器只能接受一个对象


    因此,你正处在十字路口,需要决定你想做什么。这很可能意味着要考虑最终使用的模式,以及是否要显式地或通过映射规则来定义它。

    Maddy您试图索引的是一个嵌套的JSON对象!!!Solr只允许JSON数据以平面格式编制索引。我的意思是,国家和部门对象不能按照您尝试的方式进行索引。您必须将它们展平为单独的字段,即Country.countryId必须是一个单独的字段,Country.countryName必须是一个单独的字段。类似地,Sector.sId必须是单独的字段,而Sector.sectorName必须是单独的字段。另外,最后一个documentjson对象中的对象应该以声明employee Id的相同方式声明,您需要删除document对象并自由放置每个字段。我希望你明白我的意思。这将是100美元℅ 工作我重复一遍,您不能像这样索引嵌套的JSON,您需要将JSON展平到最简单的层次。如果有帮助,请告诉我:)。为了更好地理解下面的要点,在Solr admin屏幕上,获取此JSON并尝试在Documents部分对其进行索引,同时通过单击F12在Chrome或其他浏览器中保持网络选项卡打开,您将看到与控制台中相同的错误!!这就是为什么尽管您可以保持国家和部门对象相同,但您需要删除数据对象并自由声明其中的字段。

    Maddy您试图索引的是一个嵌套的JSON对象!!!Solr只允许JSON数据以平面格式编制索引。我的意思是,国家和部门对象不能按照您尝试的方式进行索引。您必须将它们展平为单独的字段,即Country.countryId必须是一个单独的字段,Country.countryName必须是一个单独的字段。类似地,Sector.sId必须是单独的字段,而Sector.sectorName必须是单独的字段。另外,最后一个documentjson对象中的对象应该以声明employee Id的相同方式声明,您需要删除document对象并自由放置每个字段。我希望你明白我的意思。这将是100美元℅ 工作我重复一遍,您不能像这样索引嵌套的JSON,您需要将JSON展平到最简单的层次。如果有帮助,请告诉我:)。为了更好地理解下面的要点,在Solr admin屏幕上,获取此JSON并尝试在Documents部分对其进行索引,同时通过单击F12在Chrome或其他浏览器中保持网络选项卡打开,您将看到与控制台中相同的错误!!这就是为什么你可以
         <field name="buyLimit" type="tdoubles"/>
          <field name="country.countryId" type="tlongs"/>
          <field name="country.countryName" type="strings"/>
          <field name="creationDate" type="tlongs"/>
          <field name="currency" type="string" indexed="true" stored="true"/>
          ***<field name="documents.fileExists" type="booleans"/>
          <field name="documents.fileName" type="strings"/>
          <field name="documents.language" type="strings"/>
          <field name="documents.researchId" type="strings"/>***
          <field name="opinion.opinion" type="strings"/>
          <field name="opinion.opinionId" type="strings"/>
           <field name="employeId" type="string" multiValued="false" indexed="true" stored="true"/>
          <field name="s.sId" type="tlongs"/>
          <field name="s.sName" type="strings"/>
          <field name="type" type="string" indexed="true" stored="true"/>