Ticket #6 (closed task: fixed)

Opened 9 months ago

Last modified 8 months ago

Metastore Search interface

Reported by: mahlon Assigned to: mahlon
Priority: major Milestone: ThingFish 0.2 - The "Butterhand" Release
Component: ThingFish Keywords: thingfish search metastore
Cc: Depends on:

Description

A tentative list of what we'd like to implement in the /search handler.

Some of this will be accessible via URI queries, but we've decided to leave the complex queries to a POST.

Most the type-specific queries won't be implemented in simple metastores, and will require the RDF backend store.

type-independent

exact
:find_by_exact_property
pattern
:find_by_matching_property
exist checks
:find_by_exact_key :find_by_matching_key

type-specific

date operations
:before, :after, :during :find_by_date_property
numeric operations
>, <, % :find_by_numeric_property
set operations
intersection, union, difference, exclusion :find_by_membership_property

Change History

12/11/07 07:34:57 changed by mahlon

  • status changed from new to assigned.

In addition to these metastore APIs, we need to write a URI query parser to handle /search requests, as discussed here.

12/17/07 07:56:57 changed by mahlon

This is languishing, getting started and stopped again, and generally just not coming together. We think we know why now -- and it's because we don't really have any decent use cases for this. Once we implement our POST interface, all of our searches will be against that, and there will be no real need for a URI query.

With that said, a simple GET is still very useful - but we need to keep this -much- simpler than we were discussing. Once we started getting into a recursing URI query parser and data typing (date ranges vs integer matches) we realized that this wasn't a "simple" search at all, and were realistically re-inventing many a wheel.

So, to put a hard ceiling on what a "simple" search is, we're keeping the default 'AND' behavior and exact matches, adding wildcarding, and stopping there until a specific use case demands otherwise. :)

Ideally later, the POST interface will implement dav-style dynamic collections (aka saved searches in the metastore) that you can publish if you don't want full POST access to your store for searching, combined with some delicious ACL action.

12/17/07 09:15:00 changed by mahlon

  • status changed from assigned to closed.
  • resolution set to fixed.