我们正在使用 Endeca 来获取记录,因为它们的数量很大。我们在前端有一个数据表,它显示通过 Endeca 查询从 Endeca 获取的记录。现在,当我们根据前端的复选框值过滤结果时,查询会附加 Nrs 属性并获取过滤后的结果。对于任何中文、俄文或特殊字符,我们对其进行编码并创建查询。例子:
N=0&Ntk=全部&Ntx=mode+matchall&Ntt= rumtek &Nrs=collection()/record[(customerName="%22RUMTEK%22+LTD.")]&No=0&Ns= ,Endeca.stratify(collection()/record[not% 20(发票日期)])||发票日期|1|| ,Endeca.stratify(collection()/record[not%20(invoiceNumber)])||invoiceNumber|1
在上面的查询中,结果是根据值“rumtek”获取的,我们通过将值指定为“”RUMTEK“LTD.”来应用过滤器。编码后,过滤器值转换为“%22RUMTEK%22+LTD.”。此查询未获取任何结果。
当我们给出完整的编码术语(就像我们给出编码值的任何中文单词)或任何英文单词时,都会获取结果。给出包含双引号 (") 的术语时不会获取结果,例如 "ABC" LTD. 或 AB&C (AB%26C)。
另一个问题是:- 如果我们将 AB 设为停用词(不会被搜索的词)会怎样。如果我们搜索 AB&C,那么它会搜索 AB&C 的结果还是将整个术语作为停用词。
任何建议将不胜感激。
提前致谢。