近日某项目中发现,使用全文索引查询时会有非正常词汇检索不到的问题,将排查处理过程在此记录。
使用全文索引检索不到数据
但是实际数据内容存在该词汇
检查全文索引属性,查看分词方式,发现使用的是中文最少分词
重建全文索引,修改分词类型为中文最多分词
drop context index "T1_ZW" on "SYSDBA"."T1";
CREATE CONTEXT INDEX T1_ZW ON "SYSDBA"."T1"(ZW) LEXER CHINESE_FP_LEXER SYNC TRANSACTION;
使用全文索引查询查看结果,发现只要文本中存在所有要检索的词中的字就会被查询出来,导致检索出的结果太多
再次修改分词类型,改为机械双字分词
drop context index "T1_ZW" on "SYSDBA"."T1";
CREATE CONTEXT INDEX T1_ZW ON "SYSDBA"."T1"(ZW) LEXER CHINESE_VGRAM_LEXER SYNC TRANSACTION;
这次使用全文索引检索数据发现查询结果符合预期
文章
阅读量
获赞