如何在H2数据库中使用FULL-TEXT SEARCH?
发布时间:2020-05-24 09:53:11 所属栏目:MsSql 来源:互联网
导读:请考虑以下示例 CREATE ALIAS IF NOT EXISTS FT_INIT FOR org.h2.fulltext.FullText.init;CALL FT_INIT();DROP TABLE IF EXISTS TEST;CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR);INSERT INTO TEST VALUES(
|
请考虑以下示例 CREATE ALIAS IF NOT EXISTS FT_INIT FOR "org.h2.fulltext.FullText.init";
CALL FT_INIT();
DROP TABLE IF EXISTS TEST;
CREATE TABLE TEST(ID INT PRIMARY KEY,NAME VARCHAR);
INSERT INTO TEST VALUES(1,'Hello World');
CALL FT_CREATE_INDEX('PUBLIC','TEST',NULL);
我已经执行了以下查询 SELECT * FROM FT_SEARCH('Hello',0);
但是这个查询返回“PUBLIC”.“TEST”WHERE“ID”= 1. >我是否必须再次执行此“PUBLIC”.“TEST”WHERE“ID”= 1以获取包含“Hello”字样的记录? 解决方法>是,使用FT_SEARCH的查询中的每一行代表一个架构表行,其中找到了一个关键字.搜索不区分大小写,FT_SEARCH的文本参数可能包含多个单词.例如,DELETE FROM TEST;
INSERT INTO TEST VALUES(1,'Hello World');
INSERT INTO TEST VALUES(2,'Goodbye World');
INSERT INTO TEST VALUES(3,'Hello Goodbye');
CALL FT_REINDEX();
SELECT * FROM FT_SEARCH('hello goodbye',0);
仅返回第三行: QUERY SCORE "PUBLIC"."TEST" WHERE "ID"=3 1.0 另请注意,FT_SEARCH_DATA可用于检索数据本身.例如, SELECT T.* FROM FT_SEARCH_DATA('hello',0) FT,TEST T
WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0];
返回包含关键字的两行: ID NAME 1 Hello World 3 Hello Goodbye > Apache Lucene支持wildcard搜索,虽然领先的通配符(例如* ell)往往很昂贵. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
