|
Lines 207-215
sub SearchAuthorities {
Link Here
|
| 207 |
} |
207 |
} |
| 208 |
##Add how many queries generated |
208 |
##Add how many queries generated |
| 209 |
if (defined $query && $query=~/\S+/){ |
209 |
if (defined $query && $query=~/\S+/){ |
|
|
210 |
#NOTE: This code path is used by authority search in cataloguing plugins... |
| 211 |
#FIXME: This does not quite work the way the author probably intended. |
| 212 |
#It creates a ($query prefix) AND (query 1) AND (query 2) structure instead of |
| 213 |
#($query prefix) AND (query 1 AND query 2) |
| 210 |
$query= $and x $attr_cnt . $query . (defined $q2 ? $q2 : ''); |
214 |
$query= $and x $attr_cnt . $query . (defined $q2 ? $q2 : ''); |
| 211 |
} else { |
215 |
} else { |
| 212 |
$query= $q2; |
216 |
#NOTE: This code path is used by authority search in authority home and record matching rules... |
|
|
217 |
my $op_prefix = ''; |
| 218 |
#NOTE: Without the following code, multiple queries will never be joined together |
| 219 |
#with a Boolean operator. |
| 220 |
if ($attr_cnt > 1){ |
| 221 |
#NOTE: We always need 1 less operator than we have operands, |
| 222 |
#so long as there is more than 1 operand |
| 223 |
my $or_cnt = $attr_cnt - 1; |
| 224 |
#NOTE: We hard-code OR here because that's what Elasticsearch does |
| 225 |
$op_prefix = ' @or ' x $or_cnt; |
| 226 |
#NOTE: This evaluates to a logical structure like (query 1) OR (query 2) OR (query 3) |
| 227 |
} |
| 228 |
$query= $op_prefix . $q2; |
| 213 |
} |
229 |
} |
| 214 |
## Adding order |
230 |
## Adding order |
| 215 |
#$query=' @or @attr 7=2 @attr 1=Heading 0 @or @attr 7=1 @attr 1=Heading 1'.$query if ($sortby eq "HeadingDsc"); |
231 |
#$query=' @or @attr 7=2 @attr 1=Heading 0 @or @attr 7=1 @attr 1=Heading 1'.$query if ($sortby eq "HeadingDsc"); |
| 216 |
- |
|
|