Hi Christian, I went through it's user manual to summarize some of it (wherever I said "node" before I now use "member" as Qizx manual does). - There are system properties that every node has (nature = collection|document and path eg. /foo/bar/baz.xml). - There are custom properties. - Property keys are strings - Property values are of a type: boolean, long integer, double, string, date, a node (eg. element), any serializable Java object. Querying on properties is fast, that's what I know (not sure how it is worked into indexes so I shouldn't speak about it's implementation :-) Extension functions for property handling (ns xlib): xlib:property-names($member) as xs:string* => list of property names on the member xlib:get-property($member, $prop-name as xs:string) as item()? => value of the property xlib:set-property($member, $name as xs:string, $value as item()) => sets a property (empty sequence clears a property) xlib:commit() for commiting property changes. xlib:rollback() How to use in search: xlib:query-properties($path, prop1=true())//foo/bar xlib:query-properties resolves into a sequence of members which can then be queried further using regular xpath. note that the seoncd argument can be more complex xpath expressions, here's one I lifted from the manual to show it in XQuery context. for $doc in xlib:query-properties ("/2005/propositions/*", creation-date > xs:date("2003-03-03") and x:fulltext(description, "suitable AND purpose")) return xlib:property($doc, "path") Hope that this is useful. --Marc On Tue, Sep 2, 2014 at 8:41 PM, Christian GrĂ¼n <christian.gruen@gmail.com> wrote:
How do you currently think about this metadata and indexes? In Qizx I think that these properties are index so that querying on metadata is very fast.
I didn't look at Qizx in detail yet. How do such queries look like? Do you retrieve properties for a specific document, or do you retrieve all documents that contain a specific key or key/value combination?
-- --Marc