Lucene查询:解析执行选项

Lucene查询:解析执行选项,lucene,alfresco,Lucene,Alfresco,我正在使用alfresco并尝试执行这些查询 这是我的疑问 第一: 路径:“/app:company_home/st:sites/cm:swsdp/cm:datalist/cm:aea88103-517e-4aa0-a3be-de258d0e6465/*” 第一个查询工作正常,但第二个查询无法解析 第二 +路径:“/app:company_home/st:swsdp/cm:/cm:datalist/cm:9787a75b-cbc9-4d42-b76c-df88461e62c6/*” 例外情况:

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

这是我的疑问

第一:

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

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

第二

+路径:“/app:company_home/st:swsdp/cm:/cm:datalist/cm:9787a75b-cbc9-4d42-b76c-df88461e62c6/*”

例外情况: 无法分析“+路径:”/app:company_home/st:swsdp/cm:/cm:datalist/cm:9787a75b-cbc9-4d42-b76c-df88461e62c6/*”和+TYPE:“fdm:formDatalist”:无法分析XPath。。。 意外‘9787’

我试着逃跑,但还是一样

+路径:“/app:company_home/st:swsdp/cm:/cm:datalist/cm:9787a75b \-cbc9 \-4d42-b76c \-df88461e62c6”//

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


请解决此错误。

对于lucene路径查询,某些字符需要用十六进制编码

您需要按以下方式对路径进行编码:

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 @  

有关更多信息,请参阅alfresco文档:

非常感谢您的回复,您的解决方案非常有效,我现在能够在编码字符串后获得结果,