From: Ron V. d. B. <ron...@ka...> - 2010-12-20 14:18:50
|
Hi, A while back I reported about a bug in eXist-1.4.x causing the ft:query() function to fail to find any hits in all but the first indexed collection (see <http://markmail.org/message/m5txpdjqfnkb5jfw>). I've only just discovered that the problem extends to the first indexed *document*: ft:query() is only able to access the first indexed document, or the collection containing the first indexed document. For example: when a document test.xml: <el>term</el> ...is indexed first in coll1, next in coll2, and then in coll3, only these queries will return hits: -collection('/db/coll')//el[ft:query(., 'term')] -collection('/db/coll/coll1')//el[ft:query(., 'term')] -doc('/db/coll/coll1/test.xml')//el[ft:query(., 'term')] Similar queries aimed specifically at coll2 and coll3 return nothing (while they should): -collection('/db/coll/coll2')//el[ft:query(., 'term')] -doc('/db/coll/coll2/test.xml')//el[ft:query(., 'term')] -collection('/db/coll/coll3')//el[ft:query(., 'term')] -doc('/db/coll/coll3/test.xml')//el[ft:query(., 'term')] Additionally, even when coll1 contains a second document test2.xml (with equal contents but indexed after test.xml), following query fails to find any hits (while it should): -doc('/db/coll/coll1/test2.xml')//el[ft:query(., 'term')] This makes it pretty hard to use ft:query() in eXist-1.4.x... Am I the first to bump into this, or are there any known workarounds? Kind regards, Ron Van den Branden PS: I formalised these findings in XQuery Unit Test files which I added to my first bug report at <https://sourceforge.net/tracker/index.php?func=detail&aid=3137794&group_id=17691&atid=117691>, as ftQueryIndexingOrder_XQueryUnit.zip. -- Ron Van den Branden Wetenschappelijk attaché / Senior Researcher Centrum voor Teksteditie en Bronnenstudie - CTB (KANTL) Centre for Scholarly Editing and Document Studies Koninklijke Academie voor Nederlandse Taal- en Letterkunde Royal Academy of Dutch Language and Literature Koningstraat 18 / b-9000 Gent / Belgium tel: +32 9 265 93 51 / fax: +32 9 265 93 49 E-mail : ron...@ka... www.kantl.be/ctb |