Lucene查询:解析execption

时间:2018-01-08 11:18:52

标签: lucene alfresco

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

这些是我的疑问。

  

第一

     

路径:" /应用:company_home / ST:点/ cm:swsdp /厘米:dataLists /厘米:aea88103-517e-4aa0-a3be-de258d0e6465 // *"

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

  

第二

     

+路径:" /应用:company_home / ST:swsdp /厘米:/厘米:dataLists /厘米:9787a75b-cbc9-4d42-b76c-df88461e62c6 // *"

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

我尝试逃避但仍然变得相同。

  

+路径:" /应用:company_home / ST:swsdp /厘米:/厘米:dataLists /厘米:9787a75b \ -cbc9 \ -4d42-b76c \ -df88461e62c6 //

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

请解决此错误。

1 个答案:

答案 0 :(得分:3)

对于lucene PATH查询,某些字符需要以hexa编码。

您需要以这种方式对路径进行编码:

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文档:http://docs.alfresco.com/5.2/references/API-JS-iso9075Encode.html