[ic] search spec problem...

mail lists at gmnet.net
Fri Apr 20 10:24:18 EDT 2007


On Fri, 2007-04-20 at 00:46 +0100, Kevin Walsh wrote:
> mail <lists at gmnet.net> wrote:
> > I'm still having trouble with a search spec and I can't seem to solve
> > it. This entire search-region is inside a loop which is also inside
> > another loop.  each loop has its own prefix.
> > 
> > Here is my search spec:
> > 
> >   [search-region
> >   prefix=resources
> >   list_prefix=resources_list
> >   search=|
> >   fi=resources
> >   st=db
> >   co=1
> >   sf=categorycode
> >   se=[scratch categorycode]
> >   op=eq
> >   nu=0
> >   sf=topiccode
> >   se=[scratch topiccode]
> >   op=eq
> >   nu=0
> >   sf=loscore
> >   se=[scratch score]
> >   op=<=
> >   nu=1
> >   sf=hiscore
> >   se=[scratch score]
> >   op=>=
> >   nu=1
> >   sf=inactive
> >   se=1
> >   op=ne
> >   nu=0
> >   ml=none
> >   |]
> > 
> > here is a simplified view of my resources table:
> > code categorycode topiccode loscore hiscore inactive
> > 1  1  1   0  .2  0
> > 2  1  1  .3  .5  0
> > 3  1  1  .6  .8  0
> > 4  1  1  .9   1  0 
> > 5  2  1   0  .2  0
> > 6  2  1  .3  .5  0
> > 7  2  1  .6  .8  0
> > 8  2  1  .9   1  0
> > 
> > If I set my scratch variables as follows:
> > categorycode = 1
> > topiccode = 1
> > score = .0000001
> > I get what you would expect (row 1 only)
> > 
> > If I set my scratch variables as follows:
> > categorycode = 1
> > topiccode = 1
> > score = .3333
> > I get what you would expect (row 2 only)
> > 
> > However, If I set my scratch variables this way:
> > categorycode = 1
> > topiccode = 1
> > score = 0
> > I get rows 1, 2, 3, and 4.
> > 
> > I have tried setting the loscore and hiscore fields in the database as
> > various types including double, float, decimal, and even text.
> > Does anybody have any ideas? 
> > 
> I find that it's much easier to just use SQL for anything other than
> just a simple search.  Perhaps you should consider using the [query]
> tag instead.  I'm sure you'll find it much easier to work with and
> to get going.
> 
> It doesn't sound too efficient to have loops nested in the way you've
> described.  You may be able to create a single SQL query that does the
> whole job in one loop.
> 
> I can't see anything too obvious in your search spec that I can point
> at for you.  Check that [scratch score] is indeed set to the value you
> expect.  Perhaps show the value on your page to debug it.   Your
> "inactive" spec should probably have op=!= and  nu=1, but that's
> irrelevant to your reported problem.  I really would just use SQL.
> 

Thanks for the advice. I have always stayed away from SQL and used the
search thing because of it's nice way of paging the results.  I make use
of many of the features such as on-match, no-match, on-change, more-list
etc.. I guess I will try using SQL for the outside loops and do more
testing.  At least its good to know that search spec looks OK. I will
change that inactive thing...

Thanks 
Rick
 





More information about the interchange-users mailing list