0

我有一个表 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.
4

2 回答 2

0

单词索引适用于完整的单词,而不是部分单词。因此,如果您在 PartDescription 的记录中有“NUCLEARISSAFE”,则在您的代码中将找不到文本“NUCLEAR”。

请注意,如果您有“NUCLEAR-IS-SAFE”,它会起作用,因为幕后的进展是单独索引单词。

您可以使用 index 关键字,但不幸的是它没有被索引,因此会锁定比必要更多的记录:

FOR EACH JobHead WHERE 
         INDEX(JobHead.PartDescription, "NUCLEAR") GT 0 EXCLUSIVE-LOCK.
于 2012-08-27T23:23:22.757 回答
0

确切地说,CONTAINS 运算符正在使用分词规则。根据您使用的代码页,这些可能会有所不同。请注意,对于 UTF-8,它们不是开箱即用定义的,因此除非您定义它,否则您将收到错误消息。

这篇知识库文章展示了如何查看哪些分词规则已到位 知识库文章

于 2012-08-28T04:51:05.947 回答