I have a field with the system's IP in it and am trying to add additional fields during ingest. It works if the IP field is a single value, but if it is a multivalue field it does not. I can successfully add the fields at search time regardless if it is a single or multivalue field. As an example, the field name is systemIP. The CSV lookup file is: cidr,location,region 192.168.1.0/24,Site-A,East 10.10.10.0/24, Site-B,East transforms.conf: [IPRange] INGEST_EVAL = JSON=lookup("IPRangeLookup", json_object("cidr", systemIP), json_array("location", "region")) [IPRangeLookup] batch_index_query = 1 case_sensitive_match = 1 filename=systemIPLookup.csv match_type = CIDR(cidr) max_matches = 1 props.conf: [(?::){0}host::*] TRANSFORMS = IPRange For the INGEST_EVAL: If the system only has one IP address (192.168.1.10), then JSON gets set to: {"location":"Site-A","region":"East"} If it has two IP addresses, one in each cidr, the JSON gets set to the match for the first IP in the multivalue field. For search time EVAL: If I search: index="*" host="host-with-two-IPs" | eval JSONzzz=lookup("IPRangeLookup", json_object("cidr", systemIP), json_array("location", "region")) Then a system with one IP address, JSONzzz gets set to: {"location":"Site-A","region":"East"} If it has two IP addresses, then JSONzzz gets set to: {"location":["Site-A","Site-B"],"region":["East","East"]} The lookup is the same between the two, but the INGEST_EVAL only ever processes the first value in the field. Is there a way to have INGEST_EVAL process the multivalue field and return the same JSON value as the EVAL lookup?
... View more