存在DB lucene模糊搜索问题

时间:2016-10-21 08:42:40

标签: lucene xquery exist-db

我在eXist-db上运行XQuery时遇到问题。我有一个在Tomcat上运行的应用程序,并向eXist-db发送查询,以查找某些文件。生成和发送的查询是这样的(我使用~进行模糊搜索):

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

但是,当我在本地计算机上运行相同的查询时,我没有收到该错误,而是获得了预期的结果。我错过了什么?

1 个答案:

答案 0 :(得分:1)

我担心应用程序发送到eXist-db的查询与在本地eXist-db实例上运行它时的查询之间存在一些非常微妙的区别。

我还对上面的查询进行了一些小的清理。