我有一个JobHead表,我在该表的PartDescription字段中创建一个Word-Index,如下面的程序所示。我正在PartDescription字段中查找带有NUCLEAR字样的作业。我什么都搞不了,我做错了什么?
DO:
OUTPUT TO VALUE("c:\Nuclear.txt").
FOR EACH JobHead WHERE
JobHead.PartDescription CONTAINS "NUCLEAR" EXCLUSIVE-LOCK.
DISPLAY JobHead.JobNum.
END.
OUTPUT CLOSE.
END.
答案 0 :(得分:0)
单词索引适用于完整单词,而不适用于部分单词。所以在你的代码中,如果你在PartDescription的记录中有“NUCLEARISSAFE”,它将找不到文本“NUCLEAR”。
请注意,如果您有“NUCLEAR-IS-SAFE”,它会起作用,因为场景背后的进展是单独索引单词。
你可以使用index关键字,但遗憾的是没有索引,所以会锁定超过必要的记录:
FOR EACH JobHead WHERE
INDEX(JobHead.PartDescription, "NUCLEAR") GT 0 EXCLUSIVE-LOCK.
答案 1 :(得分:0)
正是CONTAINS运算符正在使用分词规则。根据您使用的代码页,这些可能会有所不同。请注意,对于UTF-8,它们不是开箱即用的,因此除非您定义它,否则您将收到错误。
此知识库文章介绍了如何查看哪些分词规则 KB article