全文索引:部分词能查到,部分词查不到的bug

全文索引的概念:将存储在数据库中的整本书或整篇文章中的任意内容信息查找出来的技术。它可以根据需要获取全文中有关章,节,段,句,词等信息,也可以进行各种统计和分析。

原理是先定义一个词库,然后在文章中查找每个词条(term)出现的频率和位置,把这样的频率和位置信息按照词库的顺序归纳,这样就相当于对文件建立了一个以词库为目录的索引,这样查找某个词的时候就能很快的定位到该词出现的位置。
问题在处理英文文档的时候显然这样的方式是非常好的,因为英文自然的被空格分成若干词,只要我们有足够大的词汇库就能很好的处理。但是亚洲文字因为没有空格作为断词标志,所以就很难判断一个词,而且人们使用的词汇在不断的变化,而维护一个可扩展的词汇库的成本是很高的,所以问题出现了。
 
 

1、在edgelabel木马的name属性上建立search索引;
2、插入木马数据,name为“木马-远控-Trojan.Win32.FakeLPK.7cfa上线包”;
3、name":"木马-远控-Trojan.Win32.FakeLPK.7cfa上线包",搜索木马 远控 Trojan、上线包  这4个可以搜到;Win32 FakeLPK 7cfa 这3个搜不到

 

 

经过判断是配置文件中选择的默认分词器造成的:有的支持中午分词好,有的支持英文分词好。

word MaximumMatching:[木马, 远, 控, trojan, ., win32, fakelpk, 7cfa, 上线, 包]
word MaximumMatching:[木马, 远, 控, trojan, ., win32, fakelpk, 7cfa, 上线, 包]

jieba SEARCH:[木马, -, 远控, trojan, ., win32, fakelpk, 7cfa, 上线, 包]
jieba INDEX:[木马, -, 远控, trojan, ., win32, fakelpk, 7cfa, 上线, 包]     -------这个目前是比较符合实际的

smartcn:[木马, 远, 控, trojan, win, 32, fakelpk, 7, cfa, 上, 线, 包]

mmseg4j Simple:[木马, 远, 控, trojan, win32, fakelpk, 7cfa, 上, 线, 包]
mmseg4j Complex:[木马, 远, 控, trojan, win32, fakelpk, 7cfa, 上, 线, 包]

jcseg Simple:[木马, -, 远, 控, trojan.win32.fakelpk.7cfa, trojan, win, 32, fakelpk, 7, cfa, 上线, 包]
jcseg Complex:[木马, -, 远, 控, trojan.win32.fakelpk.7cfa, trojan, win, 32, fakelpk, 7, cfa, 上线, 包]

hanlp standard:[木马, -, 远, 控, -Trojan, ., Win, 32, FakeLPK, 7, cfa, 上, 线, 包]
hanlp nlp:[木马, -, 远控, -Trojan, ., Win, 32, FakeLPK, 7, cfa, 上, 线, 包]

ansj BaseAnalysis:[木马, -, 远, 控, trojan, ., win, 32, fakelpk, 7, cfa, 上线, 包]
ansj IndexAnalysis:[木马, -, 远, 控, trojan, ., win, 32, fakelpk, 7, cfa, 上线, 包]

ik smart:[木马, 远, 控, trojan.win32.fakelpk.7cfa, 上线, 包]    ------------默认的是这个
ik max_word:[木马, 远, 控, trojan.win32.fakelpk.7cfa, trojan, win, 32, fakelpk, 7, cfa, 上线, 包]

 

posted @ 2019-12-04 13:45  Tarzen  阅读(517)  评论(0编辑  收藏  举报