ft: поле запроса из приложения eXist
[Редактировать: Кажется, это ошибка]
Я хотел бы использовать ft:query-field
из приложения на основе eXist-2.2. Хотя это прекрасно работает, когда я запускаю запрос из окна eXide "новый xquery" или напрямую с помощью REST API, я не получаю никаких результатов, как только запускаю этот запрос из приложения.
Чтобы быть более точным:
Я создал приложение, используя шаблон eXide по умолчанию.
Я загрузил коллекцию файлов TEI в /db/apps/faust-field-test/data
, Для этого я настроил индекс на основе люцена, который индексирует некоторые из этих элементов в 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 взглянуть на этот индекс?