DB2/400 SQL : 全文
DB2/400 SQL : FullText
SQL DB2/400 : 是否有人尝试使用 FullText。
如果我能有一个 sql 示例代码,那就太好了。
例如,我想将它与 clob 列一起使用。
非常感谢
这会从 mylib.myfile[mytext] 中提取所有 space 个分隔词
并将它们放入具有两列的 table 中。我将字长限制为 15,因为实际上当用户输入的字长超过 15 个字符时,我可能已经在第 15 个找到匹配项并向用户提供了一个列表。
我从网上复制了这个技巧。
CREATE TABLE mylib.myidx AS
(
WITH SPLITTER (ID, START, E, SECTION, ORIGINAL, NUM) AS
( SELECT UID, 1, LOCATE(' ', mytext), CAST('' AS VARCHAR(8000)), mytext, 0
FROM mylib/myfile
UNION ALL
SELECT ID, E + 1,
CASE WHEN LOCATE(' ',ORIGINAL, E + 1) > 0
THEN LOCATE(' ', ORIGINAL, E + 1)
ELSE LENGTH(ORIGINAL) + 1
END,
SUBSTRING(ORIGINAL, START, E - START),
ORIGINAL, NUM + 1
FROM SPLITTER
WHERE E > START
)
SELECT ID AS UID
,CAST(SECTION AS VARCHAR(15)) AS SECTION
FROM SPLITTER
WHERE LENGTH(SECTION)>1
)
WITH DATA;
SQL DB2/400 : 是否有人尝试使用 FullText。
如果我能有一个 sql 示例代码,那就太好了。
例如,我想将它与 clob 列一起使用。
非常感谢
这会从 mylib.myfile[mytext] 中提取所有 space 个分隔词 并将它们放入具有两列的 table 中。我将字长限制为 15,因为实际上当用户输入的字长超过 15 个字符时,我可能已经在第 15 个找到匹配项并向用户提供了一个列表。
我从网上复制了这个技巧。
CREATE TABLE mylib.myidx AS
(
WITH SPLITTER (ID, START, E, SECTION, ORIGINAL, NUM) AS
( SELECT UID, 1, LOCATE(' ', mytext), CAST('' AS VARCHAR(8000)), mytext, 0
FROM mylib/myfile
UNION ALL
SELECT ID, E + 1,
CASE WHEN LOCATE(' ',ORIGINAL, E + 1) > 0
THEN LOCATE(' ', ORIGINAL, E + 1)
ELSE LENGTH(ORIGINAL) + 1
END,
SUBSTRING(ORIGINAL, START, E - START),
ORIGINAL, NUM + 1
FROM SPLITTER
WHERE E > START
)
SELECT ID AS UID
,CAST(SECTION AS VARCHAR(15)) AS SECTION
FROM SPLITTER
WHERE LENGTH(SECTION)>1
)
WITH DATA;