| <!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>ElasticSearchLookupService</title> |
| <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" /> |
| </head> |
| |
| <body> |
| <!-- Processor Documentation ================================================== --> |
| <h2>Description:</h2> |
| <p> |
| This lookup service uses ElasticSearch as its data source. Mappings in LookupRecord map record paths to paths within |
| an ElasticSearch document. Example: |
| </p> |
| <p> |
| <em>/user/name</em> => <em>user.contact.name</em> |
| </p> |
| <p> |
| That would map the record path <em>/user/name</em> to an embedded document named <em>contact</em> with a field named |
| <em>name</em>. |
| </p> |
| <p> |
| The query that is assembled from these is a boolean query where all of the criteria are under the <em>must</em> list. |
| In addition, wildcards are not supported right now and all criteria are translated into literal <em>match</em> queries. |
| </p> |
| <h2>Post-Processing</h2> |
| <p> |
| Because an ElasticSearch result might be structured differently than the record which will be enriched by this service, |
| users can specify an additional set of mappings on this lookup service that map JsonPath operations to record paths. Example: |
| </p> |
| <p> |
| <em>$.user.contact.email</em> => <em>/user/email_address</em> |
| </p> |
| <p> |
| Would copy the field <em>email</em> from the embedded document <em>contact</em> into the record at that path. |
| </p> |
| </body> |
| </html> |