问题描述
现在我用的IK分词器,现在有一个字段存储是这样的 我爱java|lucene学习|CC|DD如果直接分词,则会分成 我爱 java lucene 学习 CC DD而我想单独这个字段只使用split形式的分词, 以 | 符号分词,分成 我爱java 一个词, lucene学习一个词有没有这样的形式的 问题补充:fire_wang 写道
解决方案
我已经按照你想要的切词方式,写了一个,你可以到这里下载。http://lzj0470.iteye.com/blog/1259070
解决方案二:
Lucene里面有个org.apache.lucene.analysis.StopAnalyzer分词器,构造分词对象的时候使用:StopAnalyzer(Version matchVersion, Set<?> stopWords) 改构造器,将“|”,作为stopWords的一个元素。
解决方案三:
HubbleDotNet--自定义分词器HubbleDotNet 在设计之初就定位为一个开放式的搜索平台,分词器,得分算法,数据库适配器,存储过程,函数等等都可以通过编写自定义的插件来定制。目前版本分词器,数据库适配器的自定义接口已经开放,得分算法的自定义接口也将在最近开放出来。本文将讲述如何编写自己的分词器。HubbleDotNet 本身自带了3个分词器,分别是盘古分词,简单分词和英文分词。但对于搜索应用来说,仅仅这3种分词器是不够用的,很多应用需要定制化的分词器来提高搜索的准确度。本文通过讲述如何编写一个以逗号分隔的分词器,抛砖引玉。大家可以仿照这个简单的逗号分隔分词器来编写自己的分词器。逗号分词器主要用于一些分类信息的分解。比如某条记录同时属于 A B C 三个分类,在关系型数据库中,我们可能需要设计2个表,通过主表和分类信息表关联来描述记录的分类关系。在搜索引擎技术中,往往偏向于no-sql ,至少是单表的简单平铺方式,这种方式的查询效率要比关系型要高很多,适合于搜索引擎对大规模数据检索的要求。目前以 google 为代表的搜索引擎基本上都是采用非关系型的设计,所以我们在设计搜索引擎时也最好参照这些搜索巨头的设计理念。回到这个问题,把分类信息平铺到一个表中的方法是增加一个全文索引字段,这个字段中存储这条记录的所属分类,分类之间以逗号分隔(比如 A,B,C)。 这样如果我们要查询属于A或B分类的记录,我们只要写类似如下的语句就可以完成:select top 10 * from table where title contains ‘xxxx’ and class match ‘A B’ order by score desc详细http://www.cnblogs.com/eaglet/archive/2011/06/03/2070256.html
解决方案四:
你可以把这个单独处理,或者把这个处理加到分词前面去,这个处理完之后再做分词,也行。