Re: Beagle,Querying extended properties



Hi,

On 6/14/07, Daniel Labella de la Cruz <dani labella gmail com> wrote:
This is my first time posting on a list and I don't know the procedures to
post a question....if I make a mistake....sorry....

Nope, this is fine.

I was reading about, and I think that the Filters can do that. But the
"problem" is that I want that every file with extended attributes have its
attributes as searchable properties...

Since extended attributes are file system-specific, I think the right
place to add code for this would be in the file system backend
(FileSystemQueryable) rather than filters.

Mono.Unix.Native.Syscall.listxattr(info.FullName,out
XProperties);

There is already a class in Beagle for working with extended
attributes: Beagle.Util.ExtendedAttribute.  You should use that
instead, and add anything to it that you need.  (For example, I don't
think there is code to list them.)

AddProperty(Beagle.Property.NewKeyword("dc:"+PropertyName[PropertyName.Length-1
] , XValue.Trim('\0')));

"dc" is specifically the "Dublin Core" namespace; see dublincore.org
for more info.

You should probably name it something like "xattr:" + the property name.

With this I can see the extended properties with beagle-extract-content, but
I can't search by property:value...

If you want generic text searches to match, you need to use the
Beagle.Property.New() method instead of NewKeyword().  Keywords are
for exact matches.

If you want to add a special keyword in the search language (like how
we have "album:foo" in the search match to "dc:album" = "foo"), then
you need to use the PropertyKeyword attributes.  Look at other filter
or backend instances to see how to declare those.

Joe



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