lucene的分词检索自然不用说,可是我们的日常程序中还是经常会用到类似于数据库的等于操作。
应用中发现如果关键字为我们平时的数字ID,那么一般是没有问题的,但碰到英文和中文的时候就产生了麻烦。也就是说索引中的关键字不是数字,而是字符串(可能包含任意字符)
最近有一次的应用我是这样实现的
首先建立索引的时候需要进行等于操作的字段应为“建立索引但不分词”也就是Field.Index.UN_TOKENIZED。
检索的时候输入的信息不能分词,用到的分词器为KeywordAnalyzer
这样实现类似于数据库的等于操作。
但当输入的字符中间带有空格是,又产生了麻烦。结果我在建立索引时加了一个域,把所有含空格的都换成了加号,检索时输入的字符同样换成了加号,这样也对付实现了。
此种实现总感觉不伦不类,看来lucene用的时间太短了,还需要深入研究啊
今天写下自己博客中的第一篇日志,庆祝一下^_^