Searching from one database in to another?

I have a database of reference citations in DevonThink Pro. I want to generate a database for a publication. The database for the publication will pull documents from the reference citations based on smart search criteria. It will also store other documents as a repository for the project.

I have found that smart searches are either global or local. They cannot be across databases (i.e. starting from within one database to search strictly inside another database).

I tend to think “self-contained” in my approach. That means, the publication database is to be its own entity outside the citation database. I also tend to think, the search I want is not global in scope. I won’t be using it for everything I do in DTP.

So, what is the best strategy here? At the moment, I am building the publication as a folder inside the citation database. The reluctance I have is to add other external resources inside the folder because they become part of the citation database (i.e. it “corrupts” the integrity of the citation database).


Yes, Smart Groups are either local or global. You cannot make cross-database local Smart Groups. Why not just use a reusable Smart Group in the citations DB to pull relevant data to be copied into the publicatoin DB?

So, to pull selective search results from one database in to another, the approach is …

  • set up searches on the primary (source) database
  • copy/move/… the results to the secondary (target) database
  • (tidy up the search “clutter” from the main database)

I’ll look in to this.

I’ll add a feature request though … Allow a way to do searches to add content to one database using source material from a different database. The two steps to copy/move/… the results and tidy up the clutter only add to the inefficiency as I see it. They also beg the question … How automatic is this process? What happens when I add a new set of files to the source database? Do I have to redo the copy/move/… step to update the results in the target database to reflect the updates in the source database?



When I search for content in one database that I wish to either move or duplicate to another database, I use the full Search window (Tools > Search) to produce a list of search results.

Then (to move to) select all the results, Control-click on the selection and choose Move to <chosen open database). The selected items will be moved to the second database and removed from the first database.

To copy to the second database, select all the results, Control-click on the selection and choose Duplicate to . The selected items will now exist in both databases.

Clutter? What clutter?

Tip: When the full Search window is used, if you wish the query to become a smart group after examining the results, click on the “+” button to the right of the query field, then name and save the new smart group.

If you are moving items out of the first database, then add new content and repeat the search, there’s no problem – only the new items will be listed.

If you are duplicating (copying) items to the second database, you will need to identify the previously found items so that they won’t be listed again in subsequent searches. That can be accomplished by assigning a tag to the results list after each batch has been copied, and the tag should be specific to that search query. Then add to the query in the Advanced button space the condition Tag is not .

The logic of these procedures seems very straightforward and efficient. :slight_smile:

I find it more logical and efficient to be able to sit in a target database, search in a different source database, and have the results just be there … voila. The steps to go to a source, do a search, select all results, move them to a target somewhere else, and return back to the source and redo … are clutter in a workflow.

For a practical comparison, when I do a search at Google, I do not go to Google Headquarters, log in to their computer directly, collect the results, put them on my thumb drive, and move them over to my computer. I sit at my computer, go to the Google database, pull the results to me, and … voila … they are just there.

The paradigm for working between databases in DevonThink is clearly different from what I expected in this regard. It’ll take a bit more time to wrap my head around the difference.



Of course you can be working in database 2 and do a search in database 1 if it is also open (I advise using the full Search window).

We would get howls of outrage from thousands of users, however, were that to result in automatic modification of one or both databases. That would be a terrible paradigm, as searches could mess up the purpose and design of users’ databases. There should be a second step to “pull” the documents listed in the results (as there is in your analogy to a Google search) into the other database, if that’s what you wish to do. The Move to… and Duplicate to… actions are available to “pull” the search result documents into a specified database, or even into a specified group within that database.

The Move to… action would modify both databases, if that’s what’s desired, and the Duplicate to… action would modify only the receiving database.

The logic and workflow is simple and straightforward, and will allow your choice between modifying one or both databases after performing a search – or neither, if you choose. That’s really important! Think of the havoc a poorly designed search would create, if it automatically modified one or both databases. Merely performing searches should NOT modify databases, and merely performing a Google search does NOT automatically pull down files to your computer (thank goodness, although I appreciate the fact that a DEVONagent Pro search does download search-filtered results into a cache, and these can be saved to the Archive and/or sent over to DEVONthink).

Your detailed response and clarification are duly noted and much appreciated.

As I noted, the paradigm used by DevonThink is clearly going to take some more time for me to figure out.