Lucene 查询:解析器异常
Lucene query : parse execption
我正在露天使用并尝试执行这些查询,
这些是我的查询。
1st:
PATH:"/app:company_home/st:sites/cm:swsdp/cm:dataLists/cm:aea88103-517e-4aa0-a3be-de258d0e6465//*"
第一个查询工作正常,但第二个查询无法解析
2nd
+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 这包含开头的数字,因此无法解析。
请解决这个错误。
对于 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
我正在露天使用并尝试执行这些查询,
这些是我的查询。
1st:
PATH:"/app:company_home/st:sites/cm:swsdp/cm:dataLists/cm:aea88103-517e-4aa0-a3be-de258d0e6465//*"
第一个查询工作正常,但第二个查询无法解析
2nd
+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 这包含开头的数字,因此无法解析。
请解决这个错误。
对于 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