blob: 2b6ba0e474e33ba81593ded07ca78c3a1dcdcace [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<head>
<meta charset="utf-8" />
<title>PutSolrRecord</title>
<link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
</head>
<body>
<h2>Usage Example</h2>
<p>
This processor reads the NiFi record and indexes it into Solr as a SolrDocument.
Any properties added to this processor by the user are
passed to Solr on the update request. It is required that the input record reader
should be specified for this processor. Additionally, if only selected fields of a record are to be indexed
you can specify the field name as a comma-separated list under the fields property.
</p>
<p>
Example: To specify specific fields of the record to be indexed:
</p>
<ul>
<li><strong>Fields To Index</strong>: field1,field2,field3</li>
</ul>
<p>
<strong>NOTE:</strong> In case of nested the field names should be prefixed with the parent field name.
</p>
<ul>
<li><strong>Fields To Index</strong>: parentField1,parentField2,<strong>parentField3_childField1</strong>,<strong>parentField3_childField2</strong></li>
</ul>
<p>
In case of nested records, this processor would flatten all the nested records into a single solr document, the field name of the field in a child document would follow the format of <strong>{Parent Field Name}_{Child Field Name}</strong>.
</p>
<p>
Example:
<strong>For a record created from the following json:</strong><br/>
</p>
<pre>
{
"first": "Abhi",
"last": "R",
"grade": 8,
"exams": {
"subject": "Maths",
"test" : "term1",
"marks" : 90
}
}
</pre>
<p>
<strong>The corresponding solr document would be represented as below:</strong><br/>
</p>
<pre>
{
"first": "Abhi",
"last": "R",
"grade": 8,
"exams_subject": "Maths",
"exams_test" : "term1",
"exams_marks" : 90
}
</pre>
<p>
Similarly in case of an array of nested records, this processor would flatten all the nested records into a single solr document, the field name of the field in a child document would follow the format of <strong>{Parent Field Name}_{Child Field Name}</strong> and would be a multivalued field in the solr document.
Example:
<strong>For a record created from the following json:</strong><br/>
</p>
<pre>
{
"first": "Abhi",
"last": "R",
"grade": 8,
"exams": [
{
"subject": "Maths",
"test" : "term1",
"marks" : 90
},
{
"subject": "Physics",
"test" : "term1",
"marks" : 95
}
]
}
</pre>
<p>
<strong>The corresponding solr document would be represented as below:</strong><br/>
</p>
<pre>
{
"first": "Abhi",
"last": "R",
"grade": 8,
"exams_subject": ["Maths","Physics"]
"exams_test" : ["term1","term1"]
"exams_marks" : [90,95]
}
</pre>
</body>
</html>