I'm importing a list of software from CSV, and it has the Software Vendor, software title, version, and install date.
Part of the import I am trying to match aliases of Software Vendor names to a parent name, so that I can use some fuzzy matches and create proper aliases:
(:Swvendor {name:'Adobe'})-[:HAS_ALIAS]->(:Swvalias {name:'Adobe Systems, Inc.'})
In order to better match I have an array of useless words that's I'd like to filter out by performing a replace function to improve match likelihood:
['systems','industries',' ltd',' inc','networks','technologies,','company','development','l.p.',' llc',' corp',' ltd'] as uselesswords
But if I perform an UNWIND and then a match like this:
NWIND uselesswords as uselessword
WITH *,replace(vendor,uselessword,'') as cleanedvendor,replace(vendor,'?','') as vendor2
MATCH (sv:Swvendor) where not(sv.name =~ vendor2) and sv.name =~ vendor2
it will perform the match on EACH replace string, instead of performing ALL of the replace before attempting the MATCH which is what I want.
Is there a good way in cypher to perform a bulk string replace with ALL the values in an array before performing the MATCH?