2016-10-21 11 views
0

eXist-dbでXQueryを実行する際に問題があります。私はTomcat上で実行され、特定のファイルを見つけるためにeXist-dbにクエリを送信するアプリケーションを持っています。生成され、送信されたクエリは、(私はあいまい検索に~を使用)、このようなものです:Exist DB luceneファジー検索問題

for $doc in collection('/db')//document/sender[ft:query(.,'test~')] 
let $score := ft:score($doc) 
order by $score descending 
return 
    base-uri($doc) 

と私はテストサーバー上で次のエラーを取得:私は実行すると、しかし

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> ... 

をローカルマシン上で同じクエリを実行しても、そのエラーは発生せず、代わりに予期した結果が得られます。私は何が欠けていますか?

+0

各マシンのeXistのバージョンは? – joewiz

+0

同じです。最新の安定版(2.2)。 –

+0

非常に奇妙です。私は間違いなくこのエラーを2.2で見ることは期待しません。問題のあるマシンで問題のコレクションのインデックスを再作成できますか?インデックスが '/ db'で定義されている場合は、' xmldb:reindex( '/ db') 'となります。これが役立つかどうかを見てください。 – joewiz

答えて

1

アプリケーションがeXist-dbに送信するクエリとローカルのeXist-dbインスタンスで実行するクエリとの間には、微妙な違いがあることが懸念されます。

私はまたあなたの質問にいくつかのマイナークリーンアップを行いました。