On Jul 26, 2010, at 9:04 AM, Liz Glasser wrote: > Thank you. I have it working now. What if I have two attributes on the > MyElement named MyId and MyFlag and I want to get the MyId values for all > entries where MyFlag=1? That's really what I ultimately want.
That can easily be done with XPath: /myrooteleme...@myflag = 1]/@myId Just pass this XPath query to Xindice: xindice xpath -c /db/my/collection -q "/myrooteleme...@myflag = 1]/@myId" Vadim > Liz > > Vadim Gritsenko wrote: >> On Jul 23, 2010, at 11:43 AM, Liz Glasser wrote: >> >> >>> I have a ton of records in my xindice database that look like: >>> <MyRootElement myId="...">.....</MyRootElement> >>> >>> I need the most efficient way to get a list of all values for myId. How can >>> I best do this? >>> >>> Basically if this was a relational database and I had a table called >>> MyRootElement, I'd do "select myId from MyRootElement". I need a xindice >>> equivalent. >>> >> >> Hey Liz, >> >> The query you are looking for is "/MyRootElement/@myId". Using command line >> you can query it like this (replace /db/my/collection with path to your >> collection): >> >> xindice xpath -c /db/my/collection -q /MyRootElement/@myId >> >> Results should look like: >> >> <xq:result xmlns:xq="http://xml.apache.org/xindice/Query" myId="value" >> xq:col="/db/my/collection" xq:key="MyDocument1" /> >> ... >> >> >> Now, if only some % of documents in this collection contain this root >> element/attribute, then you can speed that query up by build an index on the >> element/attribute pair. Index will allow query engine to skip documents >> which do not have that element/attribute pair. Index also helps if you want >> to find a document by value of the myId attribute. Command to build the >> index looks like: >> >> xindice add_indexer -c /db/my/collection -n MyRootElementMyId -p >> MyRootElement@ myId >> >> >> OTOH, if all documents have the same structure, then in order to extract all >> of the values, query engine will have to iterate through all of the >> documents in the collection - and index will be of no help. >> >> Hope that helps. >> >> Vadim >> >> >> >> >