Dan Scott (very) recently made a great improvement to our
SRU-to-search code by converting the hard-coded index definition map
to use the actual configuration data available in 2.0+.  First,
thanks, Dan, for taking it the last mile!

On that front, there's some more we can do.  Dan and I have discussed
in IRC a couple of these things, particularly relaxing the alias
inclusion and adding in some static filters and modifiers as index
axes.  Here's a list of those static filters which we have:

 * available -- actually a modifier, but can be spelled: available:true
 * ascending, descending -- adjusts sort order, actually a modifier,
but can be spelled: descending:true
 * metarecord, metabib -- causes a metarecord (instead of direct
record) search, actually a modifier, but can be spelled:
metarecord:true
 * sort -- takes the sort axis (more on that later)
 * format -- a backward-compat option for item_form and item_type
 * before, after, during, between -- special filters that use the
date1 and date2 data in MARC
 * statuses -- a list of the status ids we care about for item
visibility record inclusion
 * locations -- a list of the shelving locations we care about for
item visibility record inclusion
 * site -- the shortname or id of the org unit we want to search
 * depth -- the numeric depth (actor.org_unit_type.depth) that
provides scope to "site"
 * lasso -- the id of a lasso (org unit group) to search
 * my_lasso -- the id of a user-defined lasso. supported by the
syntax, but not yet by the search code
 * offset -- result set offset
 * limit -- result set limit
 * superpage -- the search superpage for this query
 * superpage_size -- the size of superpages
 * check_limit -- max number of records to check for visibility
(superpage * superpage_size)
 * core_limit -- number of record to return for checking (usually the
same as check_limit)
 * skip_check -- number of records to ignore at the front of the query
for visibility checking (approx: (superpage - 1) * superpage_size)
 * estimation_strategy -- (see comment in opensrf.xml.example from EG source)
 * preferred_language -- add language bonus if the record matches this
 * preferred_language_weight, preferred_language_multiplier --
language match bonus to supply (multiplier, as the name suggests)

Not all of these need to be (or, necessarily should be) supported
directly by the explain doc, but some should.  My rough guess would
be:   available, ascending, descending, sort, format, before, after,
statuses, locations, site, depth, lasso, offset, limit,
preferred_language, preferred_language_weight and
preferred_language_multiplier.

Now, why haven't I mentioned things like the valid values for sort
axis, or things like audience() and item_form() filters? Because they
are now covered by the SVF topic branch's configuration, and can be
pulled in in the same way that search classes, fields and aliases are
(though we're only using aliases today, which for SRU seems correct to
me).  So this can be considered a sly way of opening the "Mike wants
to merge in SVF now" discussion.

Thoughts or comments on either the hard-coded filters stuff or SVF merge?

-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / Your Library's Guide to Open Source
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  mi...@esilibrary.com
 | web:  http://www.esilibrary.com

Reply via email to