我正在用eXist-db構建一個應用程序,它使用TEI文件並將它們轉換爲html。忽略的XML元素顯示在eXist-db的lucene搜索結果附近
對於搜索功能,我將lucene配置爲忽略某些標記。
<collection xmlns="http://exist-db.org/collection-config/1.0" xmlns:teins="http://www.tei-c.org/ns/1.0">
<index xmlns:xs="http://www.w3.org/2001/XMLSchema">
<fulltext default="none" attributes="false"/>
<lucene>
<analyzer class="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
<analyzer id="ws" class="org.apache.lucene.analysis.WhitespaceAnalyzer"/>
<text match="//teins:TEI">
<inline qname="p"/>
<inline qname="text"/>
<ignore qname="teins:del"/>
<ignore qname="teins:sic"/>
<ignore qname="teins:index"/>
<ignore qname="teins:term"/>
<ignore qname="teins:note"/>
</text>
</lucene>
</index>
</collection>
嗯,還挺作品出來,這些元素不會在搜索結果中直接顯示出來,但在之前和匹配的文本後的片段,這是由KWIC模塊返回。有沒有辦法在編制索引之前刪除它們或應用XSL轉換?
例如TEI:
...daß er sie zu entwerten sucht. Wie
<index>
<term>Liebe</term>
<index>
<term>und Hass</term>
</index>
</index>
Liebe Ausströmung inneren Wertes ist,...
當我搜索 「Ausströmung」,查詢結果爲
....sucht. Wie Liebe und Hass Liebe Ausströmung inneren Wertes ist,...
但應導致成
....sucht. Wie Liebe Ausströmung inneren Wertes ist,...
當我搜索「哈斯「這段文字片段並未顯示在結果中。
對於搜索功能:我嚴格遵守文檔中的莎士比亞例子。
謝謝,這解決了我的問題。目前我正在從5月份開始安裝Verion,所以過濾功能看起來有點不同。最後一件事:是否有可能以動態方式檢索'/db/system/config/db/apps/shakespeare/collection.xconf'?如果我將應用程序移動到另一個文件夾,路徑也會改變。 我已經改變了這 DOC(FN:CONCAT( '/ DB /系統/配置',$配置:應用程序根, '/collection.xconf')) 但是這看起來非常凌亂和醜陋。是否有更好的解決方案來訪問應用程序根目錄的集合? – romedius
如果你看到這樣混亂和醜陋,你最好開始習慣它 - 這是一個好的應用程序是如何構建的。我爲一個發現它美麗。 - 請問您在問題標題中將「忽略的XML屬性」更正爲「忽略的XML元素」? - 你是否在查詢序言中聲明並綁定了$ ignored-elements? –