Re: search branch merged

Alexander Larsson wrote:

Supporting more filter types. As you know Tracker supports a vast array of metadata (as per the freedesktop spec) which neither Beagle nor the simple non-indexed search supports atm so I think we need some query capability call in the backends. Tracker also supports operations (equals, contains, <>, >, <, between) which are more relevant depending on the metadata type being searched (ie a date would use between, =, <, > as would an integer based one like filesize). AFAIK Beagle also supports date ranges. Are you happy to support this if I create a patch?

The plan was always to support more filters. So, any sane ones that most
backends can support would be accepted. Of course, its a little
problematic if its not possible for the "simple" backend to support

Well yes I take it the simple one would have problems with any metadata like "document author". I was thinking of just having a function in the backend which indicates what metadata it supports :

nautilus_search_metadata_supports (const char *metadata_name);

which returns TRUE if the backend can filter on it.

In Nautilus we would then have more generic filter functions:

nautilus_search_metadata_equals (const char *metadata_name, const char *metadata_value)

nautilus_search_metadata_greater_than (const char *metadata_name, const char *metadata_value)

nautilus_search_metadata_less_than (const char *metadata_name, const char *metadata_value)

nautilus_search_metadata_between (const char *metadata_name, const char *lower_metadata_value, const char *upper_metadata_value)

(metadata_name would use the freedesktop spec name.)

Does the above sound okay?

Mr Jamie McCracken

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]