Ich habe ein Problem mit der Ausführung einer XQuery auf eXist-db. Ich habe eine Anwendung, die auf Tomcat läuft und Anfragen an eXist-db sendet, um bestimmte Dateien zu finden. Die Abfrage, die erzeugt wird, und gesendet wird, wie dies (I ~
für Fuzzy-Suche verwenden):Exist DB Lucene unscharfe Suche Problem
for $doc in collection('/db')//document/sender[ft:query(.,'test~')]
let $score := ft:score($doc)
order by $score descending
return
base-uri($doc)
und ich erhalte den folgenden Fehler auf dem Testserver:
org.exist.xquery.XPathException: exerr:ERROR Syntax error in Lucene query
string: Cannot parse 'test~': Encountered " <FUZZY_SLOP> "~ "" at line 1, column 10.
Was expecting one of:
<EOF>
<AND> ...
<OR> ...
<NOT> ...
"+" ...
"-" ...
<BAREOPER> ...
"(" ...
"*" ...
"^" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
<REGEXPTERM> ...
"[" ...
"{" ...
<NUMBER> ...
Allerdings, wenn ich die laufen gleiche Abfrage auf meinem lokalen Rechner, bekomme ich diesen Fehler nicht und stattdessen bekomme ich die erwarteten Ergebnisse. Was vermisse ich?
Was ist die Version von eXist auf jeder Maschine? – joewiz
Es ist das gleiche. Der neueste Stall (2.2). –
Sehr seltsam. Ich würde definitiv nicht erwarten, diesen Fehler in 2.2 zu sehen. Können Sie versuchen, die fragliche Sammlung auf dem Computer neu zu indizieren, auf dem das Problem auftritt? Wenn Ihr Index für '/ db' definiert ist, dann:' xmldb: reindex ('/ db') '. Sehen Sie, ob das hilft. – joewiz