I recently posted about creating some collections based on queries for the Recast Software. Someone on twitter pointed out that it would be better to use "Installed Software" instead of "Install Application" for the query, while I don't disagree, depending on your reasons, Installed software is not included in Hardware Inventory by default, so unless you went out of your way to enable it (and you should), you could not use it in a query.
Installed Software pulls from Asset Intelligence, which is a combination of multiple locations. [MS Docs]
Based on the application, it might show up in Installed Applications or Installed Applications (x64), where as there is no doubt it will show up in "Installed Software". What that means, if you use the Installed Software class in your queries, you can rest comfortably that you'll get the Machines with the software into the collection.
First off, lets take a look at trying to add a query based on Installed Software
So lets see what is needed to enable that class to be used in queries.
From the results, doesn't appear much difference in the the queries used. I ran "Update Membership" several times and they were always pretty close. However, this lab only has a few machines and probably pretty good hardware, so it's not really representative of a normal production environment, so feel free to setup both versions of the query for some software and then check them out in Collection Evaluation Viewer
Ok, I've run CEViewer when I have a little more data available, and using an application I know is installed on a large % of machines, it seems like Installed Software took longer to run the query, but it also found more devices, so unsure what that's about.