Lucene版本升级到3.0以后,原来的分词方式(token=tokenStream.next())的方式已经被抛弃,转而使用TermAttribute,本例使用SmartChineseAnalyzer演示如何分词,此外,本例还演示了如何对命中文档域进行高亮显示。
本例需要使用四个jar包:
lucene-core-3.0.3.jar
lucene-highlighter-3.0.2.jar
lucene-smartcn-3.0.2.jar
lucene-memory-3.0.2.jar
在高亮时有一个特别需要注意的问题:
当输入的查询词为"人民币升值"时,会抛出NoClassDefFoundError:org/apache/lucene/index/memory/MemoryIndex异常,如果将“人民币”与“升值”使用空格分开,则不会出现此异常。
解决方式是将lucene-memory-3.0.2.jar添加到classpath中。