DrugBank supports advanced searching using a powerful search engine based on the Lucene query language. DrugBank text search supports boolean logic (AND, OR, NOT operations). To match a string exactly, place quotes around your search term (for example "acetic acid" will only match the acetic followed by acid, it will not match acetic or acid alone). You can also search using "wild cards" by inserting a "*" in your search term. For example, searching for "acet*" will match all words starting with "acet". In addition, text search supports parenthetical groupings, and prepended +plus and -minus operators.
|acetaminophen AND aspirin||Find all entries containing both acetaminophen and aspirin in the drug card|
|(acetaminophen OR aspirin) AND NOT ibuprofen||Find all drugs containing acetaminophen, aspirin or both, but not containing ibuprofen|
|"acetic acid"||Find all drugs where the entire term "acetic acid" is found. In other words, don't match "acetic" or "acid" alone.|
|"acetic acid" AND approved:true||Find all approved drugs where the entire term "acetic acid" is found.|
|brands:acet* AND approved:true||Find all approved drugs with at least one brand name starting with "acet".|
As the last 2 examples demonstrate, DrugBank text query also supports a high-level search interface allowing you to narrow your search to specific drug fields. To use this interface, simply enter the field name followed by a semi-colon and your query term. For example, to search for drugs where the brand name mixtures contains "triaminic" you would search for mixtures.brand:triaminic. You can also combine different fields in a given search, for example, to find all drugs where the brand mixtures contain both "dextromethorphan" and "doxylamine" you would search for mixtures.ingredients:dextromethorphan AND mixtures.ingredients:doxylamine.