继续搭建我们的项目吧。现在是搭建商品的数据库以及Lucene框架整合。
本系列:
(一)SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis+Lucene+Redis+MAVEN)(1)框架整合构建
文章结构:(1)商品数据库的构建;(2)Lucene的整合与测试;
一、商品数据库的构建:(数据库文件会在工程文件给出。)
(1)商品层级索引表
商品是涉及多层结构的。比如:家装->住宅家具->床上用品
这里写图片描述这里写图片描述
这里写图片描述
(2)商品信息表:
这里写图片描述这里写图片描述
以及最后添加的size,商品大小款。
大家拿着这两个图对着我将会给大家导出的数据库文件看就好。清晰明了。
二、Lucene的整合与测试
(1)官网下载先。下载多少个包呢??
IKAnalyzer2012FF_u1.jar //中文分词
lucene-analyzers-common-4.4.0.jar //其余是lucene核心包。词语的切割,core内容包,高亮包,查询包
lucene-core-4.4.0.jar
lucene-highlighter-4
lucene-queryparser-4.4.0.jar
(2)导入到我们的项目中(有朋友问为什么不用maven,我也想用啊,可是maven下来找不到那堆类)
IDEA导入:先把包放到WEB-INF下面的lib包中,然后导入
这里写图片描述(3)编写我们的测试代码:
public class LuceneTest {
private static Version matchVersion = Version.LUCENE_44;
private static Analyzer analyzer = new IKAnalyzer();
/*
建立索引
*/
public void index() {
IndexWriter writer = null;
try {
//1.创建Directory(是建立在内存中还是硬盘中)
// Directory directory = new RAMDirectory();//索引建立在内存中!!!
Directory directory = FSDirectory.open(new File("e:/lucene/index01"));//索引创建在硬盘上。
//2.创建IndexWriter,用它来写索引
IndexWriterConfig iwc = new IndexWriterConfig(matchVersion, analyzer);
writer = new IndexWriter(directory, iwc);
//3.创建Document对象
Document doc = null;
//4.为Document添加Field(Field是Document的一个子元素)(Field是那些大小、内容、标题)
File f = new File("F:/lucene/example");
for (File file : f.listFiles()) {
doc = new Document();
doc.add(new Field("content",new FileReader(file)));
doc.add(new Field("filename",file.getName(),Field.Store.YES,Field.Index.NOT_ANALYZED));
doc.add(new Field("path",file.getAbsolutePath(),Field.Store.YES,Field.Index.NOT_ANALYZED));
//5.通过IndexWriter添加文档到索引中
writer.addDocument(doc);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
调用:
public class TestLuceneIndex {
@Test
public void testIndex(){
LuceneTest luceneTest = new LuceneTest();
luceneTest.index();
}
}
网友评论