我在其中一个应用程序服务器日志中收到错误“使用CONTAINS进行无效查询”。昨天这个服务没有遇到这个错误,我不知道我们的代码中可能有任何变化。
任何人都可以在我们的代码之外了解可能导致此错误的原因吗?
答案 0 :(得分:1)
1)CONTAINS运算符使用单词索引。检查是否为错误查询正确设置了索引。
2)如果在CHARACTER字段上定义了单词索引,则可以考虑增加Stash Area(-stsh)启动参数的值。
3)您还可以尝试使用带有IDXBUILD或IDXFIX限定符的PROUTIL实用程序重建索引。
答案 1 :(得分:0)
这是Progress ABL还是您的逻辑产生的错误?你有没有进度错误号?
您是否更改了数据库的编码? CONTAINS运算符依赖于分词规则,如果您更改数据库的编码(例如更改为没有定义分词规则的UTF-8),您可能会遇到CONTAINS运算符不再工作而不更改码。如果是这种情况,您必须生成分词规则。但这只是猜测。