2016-10-21 3 views
0

eXist-db에서 XQuery를 실행하는 데 문제가 있습니다. Tomcat에서 실행되는 응용 프로그램을 가지고 특정 파일을 찾기 위해 eXist-db에 쿼리를 보냅니다. 생성 및 전송되는 쿼리 (I 퍼지 검색 ~를 사용)이 같다 :Exist DB lucene fuzzy search 문제

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 인스턴스에서 실행할 때 쿼리 사이에 약간의 차이가 있다는 것을 두려워합니다.

위의 쿼리에 대해 몇 가지 부수 정리도 수행했습니다.