Index: trunk/grails-app/services/InventoryItemSearchService.groovy
===================================================================
--- trunk/grails-app/services/InventoryItemSearchService.groovy	(revision 564)
+++ trunk/grails-app/services/InventoryItemSearchService.groovy	(revision 566)
@@ -159,10 +159,41 @@
         // Build searchableParams.
         // Do not include params.sort, since not all properites are indexed.
-        def searchableParams = [max: params.max, offset: params.offset,
-                                                    reload: true, defaultOperator: 'or']
+        def searchableParams = [:]
+        searchableParams.max = params.max
+        searchableParams.offset = params.offset
+        searchableParams.reload = true
+        searchableParams.defaultOperator =  'or'
+        def properitesList = []
+        if(params.searchName)
+            properitesList << '$/InventoryItem/name'
+        if(params.searchDescription)
+            properitesList << '$/InventoryItem/description'
+        if(params.searchComment)
+            properitesList << '$/InventoryItem/comment'
+        if(params.searchLocation)
+            properitesList << '$/InventoryItem/inventoryLocation/name'
+        if(params.searchGroup)
+            properitesList << '$/InventoryItem/inventoryGroup/name'
+        if(params.searchSpareFor) {
+            properitesList << '$/InventoryItem/spareFor/name'
+            properitesList << '$/InventoryItem/spareFor/description'
+            properitesList << '$/InventoryItem/spareFor/comment'
+        }
+        if(properitesList)
+            searchableParams.properties = properitesList
+
+        // Require isActive and isObsolete.
+        def queryString = '( '+result.searchText+' )'+ ' AND isActive:"true" AND isObsolete:"false"'
 
         // Perform the searchable query.
         try {
-            result.inventoryItemList = InventoryItem.search(result.searchText, searchableParams)
+            result.inventoryItemList = InventoryItem.search(queryString, searchableParams)
+
+            // Would be nice if this worked.
+//             result.inventoryItemList = InventoryItem.search(result.searchText, searchableParams) {
+//                 must(term("isActive", true))
+//                 must(term("isObsolete", false))
+//             }
+
         } catch (e) {
             log.error e
