Okay I have my FieldIndexes set up to search by 4 fields. Searching works great unless you need to search for a blank field. Lets say I have a search where I need to find Field1='Test' Field2='Test' Field3='' Field4='' the search string looks like /search?Fields1=Test&Field2=Test&Field3=&Field4= The search would return all records where the first two fields matched PLUS the rest of the records that had any values at all. So I might get back records with a field list like: 1) 'Test' 'Test' 'Test' 'Test' 2) 'Test' 'Test' 'Test' '' 3) 'Test' 'Test' '' '' When all I really need is #3. I did a search through the ZOPE site and the only thing I could find in regards to this was an old ZOPE Collector item #2423 that talked about having broken searching blank FieldIndexes. Anyway to unbreak this? _________________________________________________________________ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
Michael Havard wrote:
Okay I have my FieldIndexes set up to search by 4 fields. Searching works great unless you need to search for a blank field.
Lets say I have a search where I need to find Field1='Test' Field2='Test' Field3='' Field4=''
the search string looks like
/search?Fields1=Test&Field2=Test&Field3=&Field4=
The search would return all records where the first two fields matched PLUS the rest of the records that had any values at all. So I might get back records with a field list like:
1) 'Test' 'Test' 'Test' 'Test' 2) 'Test' 'Test' 'Test' '' 3) 'Test' 'Test' '' ''
This is by design, since it makes it easier for search forms with text boxes on them to work as expected in most cases. ie: you leave the box empty, that box doesn't affect the search results.
When all I really need is #3.
In that case, modify your search script so it looks something like: searchSpec = {} for key,value in context.REQUEST.form: if not value: value = ('',) searchSpec[key] = value brains = context.your_catalog(searchSpec) cheers, Chris
participants (2)
-
Chris Withers -
Michael Havard