前言废话

如果一年前所谓不可解决的bug站在我面前,我一个照面就能把它斩于马下

直接上代码

这是我从网上查询资料整理测试过的代码,姑且算原创吧,感谢大神薛定谔的DBA
sqlserver

--以前做项目时的好多表组成的一个视图,以前用的是solr+tomcat查询
select * from standard1 
--	创建聚集索引 视图里面用了union无法修改成索引视图我就把视图插入一个表用作业一天更新一次,具体操作看上一篇博客
ALTER TABLE dbo.tsb ADD CONSTRAINT PK_FullTextIndexing PRIMARY KEY CLUSTERED(tb_id ASC)
GO

--创建全文目录
CREATE FULLTEXT CATALOG [Catalog_Test]
WITH
	ACCENT_SENSITIVITY = ON	--区分重音
	AS DEFAULT				--默认目录
	AUTHORIZATION [dbo];--全文目录的所有者
GO
--更改全文目录
ALTER FULLTEXT CATALOG [Catalog_Test] 
REBUILD WITH ACCENT_SENSITIVITY = ON;	--重新生成整个目录并区分重音
--REORGANIZE;	--重新组织全文目录
--AS DEFAULT;	--指定此目录为默认目录
GO
--	从数据库中删除全文目录(先删除全文索引)
DROP FULLTEXT CATALOG [Catalog_Test];
GO
 
 
--干扰字操作
--	创建干扰字表
CREATE FULLTEXT STOPLIST [Stoplist_Test] 
FROM SYSTEM STOPLIST 
AUTHORIZATION [dbo];
GO  
 
--	添加删除干扰字
ALTER FULLTEXT STOPLIST [Stoplist_Test]
ADD N'乎' LANGUAGE 2052;
GO 
 
ALTER FULLTEXT STOPLIST [Stoplist_Test]
DROP N'乎' language 2052;   
--ALL LANGUAGE 'English' 
--ALL
GO 
 
--	从数据库中删除全文本非索引字表
DROP FULLTEXT STOPLIST [Stoplist_Test];
GO 

--	创建全文索引
CREATE FULLTEXT INDEX ON [dbo].[tsb]
(a298 LANGUAGE 2052,
a100 LANGUAGE 2057,
a302 LANGUAGE 2057,
a200 LANGUAGE 2057)		--索引列,明确列中存储的语言,方便过滤
KEY INDEX PK_FullTextIndexing	--全文键:当前表中唯一索引名称
ON [Catalog_Test]				--指定全文目录
WITH (
	STOPLIST [Stoplist_Test],	--指定全文非索引字表
	CHANGE_TRACKING AUTO		--自动填充
	);
GO
 
--	更改全文索引的属性
--	激活全文索引
ALTER FULLTEXT INDEX ON [dbo].[tsb] ENABLE;
GO
 
--	删除全文索引
DROP FULLTEXT INDEX ON [dbo].[FullTextIndexing];
GO

--	测试常规查询方法
SELECT * FROM [dbo].[tsb]
--	重新生成全文目录!~再执行(更多方法有待参考:使用全文搜索查询 SQL Server)
ALTER FULLTEXT CATALOG [Catalog_Test] REBUILD;
GO--(a298,a100,a302,a200)
SELECT * FROM [dbo].[tsb] WHERE FREETEXT(a298,'航空航天系列.间聚芳族酰胺纤维中的安装保护轴套电缆.第008部分:自包装护套 (EMI)镀镍铜编织层装配后塑料套管 操作温度-55摄氏度到200摄氏度') or FREETEXT(a100,'航空航天系列.间聚芳族酰胺纤维中的安装保护轴套电缆.第008部分:自包装护套 (EMI)镀镍铜编织层装配后塑料套管 操作温度-55摄氏度到200摄氏度');
SELECT top 10000 * FROM [dbo].[tsb] WHERE CONTAINS(a298,'全文索引*');
SELECT COUNT(1) FROM [dbo].[tsb] WHERE CONTAINS(a298,'全文 AND 索引');
--sqlserver分析开
SET STATISTICS IO ON
SET STATISTICS TIME ON
--分析关
SET STATISTICS IO OFF
SET STATISTICS TIME OFF

--查看分词结果
select * from sys.dm_fts_parser('航空航天系列.间聚芳族酰胺纤维中的安装保护轴套电缆.第008部分:自包装护套EMI镀镍铜编织层装配后塑料套管操作温度-55摄氏度到200摄氏度',2052,5,0)

mysql

show index from tb_dept
alter table tb_dept add fulltext ft_stu_name (Name,XX,XX);-- 添加全文索引
drop index ft_stu_name on tb_dept;-- 删除全文索引
select * from tb_dept where MATCH(Name,XX,XX) against('研发部');-- 查询 条数为0
show variables like '%ft%'-- 查看配置然后修改
repair table tb_dept quick;-- 修改完后修复索引 然后再执行上面查询

出现查询条数为0时

mysql 全文索引 中文短词语无效怎么办_Test


mysql 全文索引 中文短词语无效怎么办_sql_02