Ich habe folgende lucene Indizes in collection.xconfLucene-Suche auf Inhalte von mehreren Tags (eXist-db)
<lucene>
<text qname="tei:text" />
<text qname="tei:summary"/>
<text qname="tei:placeName"/>
</lucene>
Mein XQuery-Code macht dann die folgende Abfrage:
let $query-results := ($documents[.//tei:text[ft:query(., $q)]],
$documents[.//tei:summary[ft:query(., $q)]],
$documents[.//tei:placeName[ft:query(., $q)]])
Now I wollen, sagen wir, auf suchen:
-pommern erik
Nun sind alle Dokumente in Abfrage-Ergebnisse haben das Wort „erik“, aber nicht die Wort "Pommern" im Inhalt des Tei: Text-Tags.
Aber einige der Ergebnisse haben beide "Erik" und "Pommern" in der Tei: Zusammenfassung Tag.
Wie kann ich einen XPath machen, so dass der Benutzer über alle drei Tags mit Lucene Syntax (so dass der Inhalt der erscheint als ein Text drei Tags) suchen?
Vielen Dank für die Antwort. Leider ist das zu restriktiv. Das Ergebnis dieser Abfrage gibt nur Ergebnisse mit "erik" sowohl in der Zusammenfassung als auch im Text zurück. Was ich will ist die Abfrage, um den Inhalt der drei Tags wie der Inhalt eines Tags zu behandeln. Etwas wie: $ dokumente [ft: query (.// tei: text + .//tei:summary + .//tei:placeName, $ q)]] – user2728690
Aufbauend auf Adams Antwort und Ihre Antwort versuchen Sie dies: ' $ Dokumente [ft: query (.// tei: Text, $ q) oder ft: query (.// tei: Zusammenfassung, $ q) oder ft: query (.// tei: placeName, $ q)] ' – joewiz
Die obige or-Abfrage gibt 618 Ergebnisse zurück und der Wert in der Frage gibt 864 Ergebnisse zurück. Beide Ergebnisse enthalten leider immer noch Ergebnisse mit dem Wort "pommern" in der Zusammenfassung. Wir haben uns entschieden, nur noch den Inhalt des Tei: -Text-Tags zu suchen (was funktioniert), da die anderen Ergebnisse die Benutzer verwirren werden. – user2728690