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
<[email protected]> 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

Reply via email to