【问题标题】:Lucene query : parse execptionLucene 查询:解析器异常
【发布时间】:2018-01-08 11:18:52
【问题描述】:

我正在使用 alfresco 并尝试执行这些查询,

这些是我的疑问。

第一个:

路径:“/app:company_home/st:sites/cm:swsdp/cm:dataLists/cm:aea88103-517e-4aa0-a3be-de258d0e6465//*”

第一个查询工作正常,但第二个查询无法解析

第二次

+PATH:"/app:company_home/st:swsdp/cm:/cm:dataLists/cm:9787a75b-cbc9-4d42-b76c-df88461e62c6//*"

例外: 无法解析 '+PATH:"/app:company_home/st:swsdp/cm:/cm:dataLists/cm:9787a75b-cbc9-4d42-b76c-df88461e62c6//*" AND +TYPE:"fdm:formDatalist"': 失败解析 XPath... 意外的“9787”

我试图逃跑,但还是一样。

+PATH:"/app:company_home/st:swsdp/cm:/cm:dataLists/cm:9787a75b\-cbc9\-4d42-b76c\-df88461e62c6//

我注意到在第一个查询中 cm:aea88103-517e-4aa0-a3be-de258d0e6465 以后者开头,但在第二个查询中 cm:9787a75b-cbc9-4d42-b76c-df88461e62c6 strong> 这包含开头的数字,因此无法解析。

请解决这个错误。

【问题讨论】:

    标签: lucene alfresco


    【解决方案1】:

    某些字符需要以十六进制编码才能进行 lucene PATH 查询。

    你需要这样编码你的路径:

    var rawString = "//test:123 DIR/FILE.TXT @"; 
    => rawString: //test:123 DIR/FILE.TXT @   
    var encodedString = search.ISO9075Encode(rawString);
    => encodedString: _x002f__x002f_test_x003a_123_x0020_DIR_x002f_FILE.TXT_x0020__x0040_
    var decodedString = search.ISO9075Decode(encodedString);
    => decodedString: //test:123 DIR/FILE.TXT @  
    

    有关更多信息,请参阅露天文档:http://docs.alfresco.com/5.2/references/API-JS-iso9075Encode.html

    【讨论】:

    • 非常感谢您的回复,您的解决方案完美运行我现在可以在编码字符串后得到结果,
    猜你喜欢
    • 2010-09-22
    • 2011-08-13
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2013-07-21
    • 2016-10-18
    相关资源
    最近更新 更多