From: Naomi D. <nd...@st...> - 2008-06-03 17:00:42
|
Andrew, look at the title_short piece and compare tit to the title2 piece -- the outer parens seem to be missing from the title_short piece - it says > 'title_short:"' . str_replace('"', '', $andQuery) . > '"^750 OR ' . but I think it should say: > 'title_short:(' . str_replace('"', '', $andQuery) . > ')^750 OR ' . or possibly > 'title_short:"' . str_replace('"', '', $lookfor) . > '"^750 OR ' . every OTHER use of $andQuery and $orQuery has parens. Or it's me that is missing something. As for the wildcard search -- I guess I was thinking that an exact match to just the search term(s) would be a better result than a match to the search term(s) followed by other chars. I'm not always confident I understand the purpose behind the code, so I'm still a bit hesitant in some areas. However, I am about to embark on a local request to test a new boosting formula. We'll see what happens, and what I can learn about clever uses of requestHandlers and the dismax vs. standard as a base. - Naomi On Jun 3, 2008, at 9:08 AM, Andrew Nagy wrote: > Naomi - the parens are in the code that you included below. As you > can see any time the $andQuery and $orQuery are used they are > wrapped in parens. Does this clarify your question or am I > understanding your incorrectly? > > Andrew > > From: vuf...@li... [mailto:vuf...@li... > ] On Behalf Of Naomi Dushay > Sent: Monday, June 02, 2008 8:02 PM > To: vuf...@li... > Subject: [VuFind-Tech] problem in queries - parens for $andQuery and > $orQuery ?? > > In looking carefully at the title queries, I think there are some > parens missing: > > case 'title': > // Title uses default search behavior > $query .= 'titleStr:"' . ucfirst(str_replace('"', '', $lookfor)) . > '"^1000 OR ' . > 'title_short:"' . str_replace('"', '', $andQuery) . > '"^750 OR ' . > 'title:"' . str_replace('"', '', $lookfor) . '*"^750 OR > ' . > 'title:"' . str_replace('"', '', $lookfor) . '"^500 OR > ' . > 'title:(' . $andQuery . ')^100 OR ' . > 'title2:(' . $andQuery . ')^50 OR ' . > 'oldTitle:(' . $andQuery . ') OR ' . > 'newTitle:(' . $andQuery . ')'; > > > Everytime you use $andQuery or $orQuery, I think outer parens are > needed: > > if $andQuery is black AND white > > I think the second line gives: > title_short:black AND white^750 > > if that's true, then won't SOLR look for term "black" in field > "title_short" and look for "white" separately in the default field, > and boost white in the default field with a factor of 750 ?? > > If this is true, I think the easiest and most elegant thing would be > to include the needed parens right in the $andQuery and $orQuery > values: > > $andQuery = '(' . implode(' AND ', $tokenized) . ')'; > $orQuery = '(' . implode(' OR ', $tokenized) ')'; > > The extra parens in the rest of the code (see 'title:(' line above) > shouldn't matter, but they could be removed. > > Naomi Dushay > nd...@st... > > > Naomi Dushay nd...@st... |