[
https://issues.apache.org/jira/browse/NIFI-3497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15896359#comment-15896359
]
ASF GitHub Bot commented on NIFI-3497:
--------------------------------------
Github user joewitt commented on a diff in the pull request:
https://github.com/apache/nifi/pull/1564#discussion_r104315947
--- Diff:
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
---
@@ -151,24 +182,41 @@ public void onScheduled(final ProcessContext context)
throws IOException {
this.dictionaryTerms = createDictionary(context);
this.fileWatcher = new
SynchronousFileWatcher(Paths.get(context.getProperty(DICTIONARY_FILE).getValue()),
new LastModifiedMonitor(), 1000L);
+
+ this.dictionaryEntryMetadataDemarcator =
context.getProperty(DICTIONARY_ENTRY_METADATA_DEMARCATOR).getValue();
}
- private Set<String> createDictionary(final ProcessContext context)
throws IOException {
- final Set<String> terms = new HashSet<>();
+ private Map<String,String> createDictionary(final ProcessContext
context) throws IOException {
+ final Map<String,String> termsMeta = new HashMap<String, String>();
+ this.dictionaryEntryMetadataDemarcator =
context.getProperty(DICTIONARY_ENTRY_METADATA_DEMARCATOR).getValue();
+
+ String[] termMeta;
+ String term;
--- End diff --
Consider moving lines 194 and 195 to line 207 (tightest scope possible) and
marking their declarations as final since they're defined in an if/else.
> ScanAttribute should support tagging a flowfile with metadata value from the
> supplied dictionary
> ------------------------------------------------------------------------------------------------
>
> Key: NIFI-3497
> URL: https://issues.apache.org/jira/browse/NIFI-3497
> Project: Apache NiFi
> Issue Type: Improvement
> Reporter: Joseph Witt
> Assignee: Joseph Witt
>
> Today ScanAttribute just looks through the supplied dictionary and given
> object for a string matching hit. If it hits then it is a match otherwise it
> is a 'not found'. However, when a hit occurs it can often be quite useful to
> gather additional metadata about that hit. This makes cases like
> enrichment/tagging much easier.
> So, plan is to have ScanAttribute support a dictionary value demarcator which
> would separate the dictionary term from some string response that will be
> added to the flowfile. For instance a dictionary might have
> apples:These are red or green
> bananas:These are yellow unless you should toss them or make bread
> Then if a hit occurs on 'apples' the flowfile that contained such an
> attribute would have a new attribute such as 'dictionary.hit.term' = 'apple'
> and 'dictionary.hit.metadata' = 'These are red or green'.
> This means downstream processors could extract that metadata and do
> interesting things with it.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)