[编辑:似乎是这个错误]
我想ft:query-field
在基于 eXist-2.2 的应用程序中使用。虽然当我从 eXide 'new xquery' 窗口或直接使用 REST API 运行查询时这工作得很好,但从应用程序中运行此查询后,我不会立即得到任何结果。
更准确地说:
我使用 eXide 的默认模板创建了一个应用程序。
我已将一组 TEI 文件上传到/db/apps/faust-field-test/data
. 为此,我配置了一个基于 lucene 的索引,将其中一些元素索引到一个fieldtest
字段中:
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<fulltext default="none" attributes="false"/>
<lucene>
<text qname="tei:l" field="fieldtest"/>
<text qname="tei:stage" field="fieldtest"/>
<!-- … -->
</lucene>
</index>
</collection>
这很好用:如果我在新的 eXide 选项卡中输入以下内容,我会从集合中获得一堆 URL:
for $hit in ft:query-field('fieldtest', 'pudel')
return document-uri(root($hit))
但是,如果我将完全相同的查询复制到app:test
其他未修改的应用程序的模板函数中,我不会得到任何结果:
declare function app:test($node as node(), $model as map(*)) {
<pre>{
for $hit in ft:query-field('fieldtest', 'pudel')
return document-uri(root($hit))
}</pre>
};
我错过了一些明显的东西吗?我如何说服 eXist 查看该索引?