### **1.創建索引的流程**

### 2.添加依賴
使用Lucene需要添加Lucene的依賴。
~~~
lucene核心庫 ???lucene-core
查詢解析器 ??????lucene-queryparser
默認分詞器 ?????lucene-analyzers-common
IK分詞器 ???????ikanalyzer
高亮顯示 ???????lucene-highlighter
~~~
Maven工程中的依賴添加如下:
~~~
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.igeekhome</groupId>
<artifactId>lucene</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Junit單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- lucene核心庫 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>4.10.2</version>
</dependency>
<!-- Lucene的查詢解析器 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>4.10.2</version>
</dependency>
<!-- lucene的默認分詞器庫 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>4.10.2</version>
</dependency>
<!-- lucene的高亮顯示 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>4.10.2</version>
</dependency>
<!-- IK分詞器 -->
<dependency>
<groupId>com.janeluo</groupId>
<artifactId>ikanalyzer</artifactId>
<version>2012_u6</version>
</dependency>
</dependencies>
</project>
~~~
~~~
////demo1代碼
package com.igeekhome.lucene;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.core.SimpleAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.*;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.File;
import java.io.IOException;
public class Demo01 {
/*
創建索引
*/
@Test
public void createIndex() throws IOException {
//1.創建文檔對象
//Document document = new Document();
//給文檔添加字段
//StringField 默認不分詞 TextField:分詞
//參數:name:字段名 value:字段值 Store:是否存儲
//document.add(new IntField("did",2,Field.Store.YES));
// document.add(new IntField("did",5,Field.Store.YES));
//document.add(new TextField("dtitle","id為2的string類型新的字段",Field.Store.YES));
/*Document document02 = new Document();
//給文檔添加字段
//StringField 默認不分詞 TextField:分詞
//參數:name:字段名 value:字段值 Store:是否存儲
document02.add(new StringField("did","2",Field.Store.YES));
document02.add(new TextField("dtitle","極客營,專業IT培訓100年啊!",Field.Store.YES));
*/
//2.創建索引寫入器對象
//2.1 創建索引庫的目錄對象 絕對路徑:D:\indexDir 相對路徑
Directory d = FSDirectory.open(new File("indexDir"));
//2.2 索引寫入器配置類對象 IKAnalyzer:中文分詞器
//參數:1.Lucene版本號 2.分詞器對象
IndexWriterConfig cofg = new IndexWriterConfig(Version.LATEST,new IKAnalyzer());
IndexWriter indexWriter = new IndexWriter(d,cofg);
//3.將文檔寫入索引庫
for(int i = 20;i<25;i++){
Document document = new Document();
document.add(new IntField("did",i,Field.Store.YES));
document.add(new TextField("dtitle","id為"+i+"的新的內容",Field.Store.YES));
indexWriter.addDocument(document);
}
//indexWriter.addDocument(document);
//indexWriter.addDocument(document02);
//4.提交
indexWriter.commit();
//5.關閉資源
indexWriter.close();
}
/**
* 查詢索引
* 1.基本查詢
*/
@Test
public void searchIndex() throws IOException, ParseException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//創建查詢解析器對象
//參數:1.查詢字段 2.分詞器
QueryParser parser = new QueryParser("dtitle",new IKAnalyzer());
//通過查詢解析器解析查詢條件
Query query = parser.parse("綺");
//執行查詢 并返回查詢結果
//參數:1. 查詢條件 2.每頁條數
TopDocs topDocs = indexSearcher.search(query, 10);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
System.out.println("ID:"+document.get("did")+";Title:"+document.get("dtitle"));//獲取根據文檔字段獲取字段的值
}
}
/**
* 2.詞條(經過全文檢索后所產生的每一個單詞,是不可分割的)查詢
*/
@Test
public void searchIndex_Term() throws IOException, ParseException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//通過詞條查詢對象
Query query = new TermQuery(new Term("dtitle","張雨綺"));//參數:1.查詢字段 2.查詢詞條
//執行查詢 并返回查詢結果
TopDocs topDocs = indexSearcher.search(query, 10);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
System.out.println("ID:"+document.get("did")+";Title:"+document.get("dtitle"));//獲取根據文檔字段獲取字段的值
}
}
/**
* 封裝查詢方法
*/
public void searchIndex_Basic(Query query) throws IOException, ParseException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//執行查詢 并返回查詢結果
TopDocs topDocs = indexSearcher.search(query, 20);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
System.out.println("ID:"+document.get("did")+";Title:"+document.get("dtitle"));//獲取根據文檔字段獲取字段的值
}
}
/**
* 3.通配符查詢
* * 任意數量字符
* ? 單個字符
*/
@Test
public void searchIndex_WildCard() throws IOException, ParseException {
//創建通配符查詢條件
Query query = new WildcardQuery(new Term("dtitle","??綺"));
searchIndex_Basic(query);
}
/**
* 4.模糊查詢
*
* 編輯距離:由錯誤的字符串改成正確的字符串需要修改的字符的數量
*
* 一般情況下,默認最大編輯距離2,也可以修改默認的最大編輯距離
*/
@Test
public void searchIndex_Fuzzy() throws IOException, ParseException {
//創建通配符查詢條件
Query query = new FuzzyQuery(new Term("dtitle","長江器號"),1);
searchIndex_Basic(query);
}
/**
* 5.數值范圍查詢
*/
@Test
public void searchIndex_NumberRange() throws IOException, ParseException {
//創建查詢條件 查詢id 在 2-4之間的數據
//參數:1.查詢字段 2.范圍最小值 3.范圍最大值 4.是否包含最小值 5.是否包含最大值
Query query = NumericRangeQuery.newIntRange("did",2,4,true,true);
searchIndex_Basic(query);
}
/**
* 6.布爾查詢 組合查詢
* 本身是沒有查詢條件的,主要是為了整合、組合其他查詢條件
*/
@Test
public void searchIndex_Boolean() throws IOException, ParseException {
//創建查詢條件 查詢id 在 2-4之間的數據
//參數:1.查詢字段 2.范圍最小值 3.范圍最大值 4.是否包含最小值 5.是否包含最大值
Query query01 = NumericRangeQuery.newIntRange("did",2,10,true,true);
Query query02 = NumericRangeQuery.newIntRange("did",5,16,true,true);
//searchIndex_Basic(query);
BooleanQuery booleanQuery = new BooleanQuery();
//參數: 1. 查詢條件 2.組合條件 Occur.MUST 必須滿足 Occur.SHOULD Occur.MUST_NOT
/*booleanQuery.add(query01,BooleanClause.Occur.MUST);
booleanQuery.add(query02,BooleanClause.Occur.MUST); 交集*/
/*booleanQuery.add(query01,BooleanClause.Occur.SHOULD);
booleanQuery.add(query02,BooleanClause.Occur.SHOULD); 并集*/
booleanQuery.add(query01,BooleanClause.Occur.MUST);
booleanQuery.add(query02,BooleanClause.Occur.MUST_NOT);//差集
searchIndex_Basic(booleanQuery);
}
/*
* 更新索引
* */
@Test
public void updateIndex() throws IOException {
//需要更新的文檔
Document document = new Document();
document.add(new IntField("did",1,Field.Store.YES));
document.add(new TextField("dtitle","這是id為1的新的字段",Field.Store.YES));
Directory d = FSDirectory.open(new File("indexDir"));
//2.2 索引寫入器配置類對象 IKAnalyzer:中文分詞器
//參數:1.Lucene版本號 2.分詞器對象
IndexWriterConfig cofg = new IndexWriterConfig(Version.LATEST,new IKAnalyzer());
IndexWriter indexWriter = new IndexWriter(d,cofg);
//參數:1.詞條對象(更新條件) 2.需要更新的文檔
indexWriter.updateDocument(new Term("did","1"),document);
indexWriter.commit();
indexWriter.close();
}
/*
* 刪除索引
* */
@Test
public void deleteIndex() throws IOException {
Directory d = FSDirectory.open(new File("indexDir"));
//2.2 索引寫入器配置類對象 IKAnalyzer:中文分詞器
//參數:1.Lucene版本號 2.分詞器對象
IndexWriterConfig cofg = new IndexWriterConfig(Version.LATEST,new IKAnalyzer());
IndexWriter indexWriter = new IndexWriter(d,cofg);
//刪除dtitle中包含“新”
//根據詞條進行刪除
//indexWriter.deleteDocuments(new Term("dtitle","新"));
//刪除id為2的索引
//indexWriter.deleteDocuments(new Term("did","2"));
indexWriter.deleteDocuments(NumericRangeQuery.newIntRange("did",2,2,true,true));
indexWriter.commit();
indexWriter.close();
}
}
~~~
~~~
//demo2
package com.igeekhome.lucene;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.IntField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.*;
import org.apache.lucene.search.highlight.*;
import org.apache.lucene.search.highlight.Scorer;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.File;
import java.io.IOException;
public class Demo02 {
/*高亮*/
@Test
public void highlighter() throws IOException, ParseException, InvalidTokenOffsetsException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//創建查詢解析器對象
//參數:1.查詢字段 2.分詞器
QueryParser parser = new QueryParser("dtitle",new IKAnalyzer());
//通過查詢解析器解析查詢條件
Query query = parser.parse("新");
//高亮格式化對象 并設置前綴后綴
Formatter formatter = new SimpleHTMLFormatter("<em style='color:red'>","</em>");
//得分對象
Scorer scorer = new QueryScorer(query,"dtitle");
//創建高亮工具
Highlighter highlighter = new Highlighter(formatter,scorer);
//執行查詢 并返回查詢結果
//參數:1. 查詢條件 2.每頁條數
TopDocs topDocs = indexSearcher.search(query, 10);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
String title = document.get("dtitle");
//獲取高亮字段的值
String h_title = highlighter.getBestFragment(new IKAnalyzer(), "dtitle", title);
System.out.println("ID:"+document.get("did")+";Title:"+h_title);//獲取根據文檔字段獲取字段的值
}
}
/*排序*/
@Test
public void sort() throws IOException, ParseException, InvalidTokenOffsetsException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//創建查詢解析器對象
//參數:1.查詢字段 2.分詞器
QueryParser parser = new QueryParser("dtitle",new IKAnalyzer());
//通過查詢解析器解析查詢條件
Query query = parser.parse("新");
//SortField 排序字段 參數:1.需要排序的字段 2.該字段的類型 3.默認是升序 如果需要降序 則為true
Sort sort = new Sort(new SortField("did",SortField.Type.INT,true));
//執行查詢 并返回查詢結果
//參數:1. 查詢條件 2.每頁條數 3.排序對象
TopDocs topDocs = indexSearcher.search(query,10,sort);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
String title = document.get("dtitle");
System.out.println("ID:"+document.get("did")+";Title:"+title);//獲取根據文檔字段獲取字段的值
}
}
/*分頁*/
/*排序*/
@Test
public void page() throws IOException, ParseException, InvalidTokenOffsetsException {
int page = 4;//當前頁
int nums = 10;//每頁條數
int start = (page-1)*nums;
int end = start+nums;
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//創建查詢解析器對象
//參數:1.查詢字段 2.分詞器
QueryParser parser = new QueryParser("dtitle",new IKAnalyzer());
//通過查詢解析器解析查詢條件
Query query = parser.parse("內容");
//SortField 排序字段 參數:1.需要排序的字段 2.該字段的類型 3.默認是升序 如果需要降序 則為true
Sort sort = new Sort(new SortField("did",SortField.Type.INT,true));
//執行查詢 并返回查詢結果
//參數:1. 查詢條件 2.每頁條數 3.排序對象
TopDocs topDocs = indexSearcher.search(query,end,sort);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
//for(ScoreDoc scoreDoc : scoreDocs){
for(int i = start;i<end;i++){
if(i>=scoreDocs.length){
break;
}
int docId = scoreDocs[i].doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
String title = document.get("dtitle");
System.out.println("ID:"+document.get("did")+";Title:"+title);//獲取根據文檔字段獲取字段的值
}
}
/*權重*/
@Test
public void boost() throws IOException, ParseException, InvalidTokenOffsetsException {
//創建索引庫目錄對象
Directory d = FSDirectory.open(new File("indexDir"));
//創建索引讀取對象
IndexReader reader = DirectoryReader.open(d);
//創建索引查詢對象
IndexSearcher indexSearcher = new IndexSearcher(reader);
//創建查詢解析器對象
//參數:1.查詢字段 2.分詞器
QueryParser parser = new QueryParser("dtitle",new IKAnalyzer());
//通過查詢解析器解析查詢條件
Query query = parser.parse("新");
//執行查詢 并返回查詢結果
//參數:1. 查詢條件 2.每頁條數 3.排序對象
TopDocs topDocs = indexSearcher.search(query,10);
System.out.println("共查詢出"+topDocs.totalHits+"條數據;");
// 獲取文檔得分數組
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for(ScoreDoc scoreDoc : scoreDocs){
int docId = scoreDoc.doc;//獲取文檔的id 索引下標
//根據文檔id獲取文檔對象
Document document = reader.document(docId);
String title = document.get("dtitle");
System.out.println("ID:"+document.get("did")+";Title:"+title);//獲取根據文檔字段獲取字段的值
}
}
/*
創建索引
*/
@Test
public void createIndex() throws IOException {
//2.創建索引寫入器對象
//2.1 創建索引庫的目錄對象 絕對路徑:D:\indexDir 相對路徑
Directory d = FSDirectory.open(new File("indexDir"));
//2.2 索引寫入器配置類對象 IKAnalyzer:中文分詞器
//參數:1.Lucene版本號 2.分詞器對象
IndexWriterConfig cofg = new IndexWriterConfig(Version.LATEST,new IKAnalyzer());
IndexWriter indexWriter = new IndexWriter(d,cofg);
Document document = new Document();
document.add(new IntField("did",100,Field.Store.YES));
//設置權重 讓查詢結果靠前 默認每個字段權重都是1
TextField textField = new TextField("dtitle", "id為100的新的內容", Field.Store.YES);
textField.setBoost(2);//設置權重 默認是1
document.add(textField);
indexWriter.addDocument(document);
//4.提交
indexWriter.commit();
//5.關閉資源
indexWriter.close();
}
}
~~~
- spring
- 1.spring第一天
- 1.1 安裝spring插件(spring tool suite)
- 1.2 spring概述
- 1.3 控制反轉&依賴注入
- 1.4 springIOC容器
- 1.5 依賴注入的四種方式
- 1.6 配置bean的細節
- 1.7 bean之間的關系
- 1.8 bean作用域
- 1.9 補充:創建對象的幾種方法
- 1源代碼位置
- 2.spring第二天
- 2.1 使用外部屬性文件
- 2.2 spEL
- 2.3 bean的生命周期
- 2.4 通過工廠方式配置bean
- 2.5 基于注解的方式配置bean
- 2.6 組件裝配
- 2.7 靜態代理
- 2.8 動態代理
- 2.9 Cglib代理
- 2源代碼位置
- 3. spring第三天
- 3.1 springAOP
- 3.1.1 AOP簡介
- 3.1.2 為什么使用AOP
- 3.1.3 AOP關鍵術語
- 3.1.4 AOP圖解
- 3.1.5 springAOP實現步驟
- 3.1.6 SpringAOP實現原理:
- 3.1.7 AOP的好處
- 3.1.8 AOP在實際項目中的主要應用
- 3代碼地址
- 3.1.9 純注解版配置aop的方式
- 3.2 maven環境搭建
- 附IDEA激活碼
- 4. spring第四天
- 4.1 c3p0事務
- 4.2 命令窗口事務
- 4.3 c3p0連接池設置
- 4.4 事務中的一些基本概念
- 4.5 事務的傳播行為
- 4.6 自定義異常
- 4.7 spring整合Junit單元測試
- 4.8 JdbcTemplate(附源代碼)
- 事務源代碼
- 4.9 純注解tx
- 4.10 基于xml配置事務
- 0. jsp頁面修改編碼方式
- 0.1 eclipse配置tomcat
- 0.單例模式-飽漢模式
- 0.單例模式-饑漢模式
- springMVC
- 1. springmvc第一天
- 1.1 springMVC概述
- 1.2 springmvc框架搭建及第一個應用程序
- 1.3 @RequestMapping
- 1.4 RequestMapping修飾類
- 1.5 RequestMapping精準化映射
- 1.6 Ant風格URL
- 1.7 帶有占位符的url映射
- 1.8 REST風格
- 1.9 RequerstParam獲取請求正文
- 2. springmvc第二天
- 2.1 優化
- 2.2 POJO綁定請求參數
- 2.3 RequestHeader獲取請求報頭信息
- 2.4 CookieValue獲取Cookie信息
- 2.5 獲取原生ServletAPI
- 2.6 ModelAndView處理模型數據
- 2.7 Map、Model、ModelMap處理模型數據
- 2.8 @SessionAttributes注解
- 2.9 @ModelAttribute無返回值方法及方法入參
- 2.10 @ModelAttribute修飾有返回值類型的方法
- 代碼地址
- 3. springmvc補充
- 3-1 springmvc工作原理
- 3-2 springmvc form表單提交中文亂碼
- 3-3 數據的格式化
- 3-4 自定義類型轉換器
- 3-5 其他知識點
- 3-6 crud代碼
- 3-7 @DateTimeFormat日期格式化
- 3-8 數據驗證的概念及JSR303驗證
- 3-9 Hibernate-Validator驗證框架
- 3-10 Controller捕獲錯誤消息
- 3-11 errors標簽在頁面中獲取錯誤消息
- 3-12 錯誤消息的定制及國際化
- 3-13 自定義攔截器
- 3-14 Java代碼中獲取國際化信息
- 3-15 超級鏈接設置國際化
- 3-16 AJAX支持之@RequestBody
- mybatis
- 1. mybatis第一天
- 1. 為什么使用mybatis
- 2. 下載地址
- 3. hello
- 4. mybatis三種開發模式
- 5. 全局配屬屬性內容
- 6. DTD設置
- 7. Mapper中的CRUD
- 8. 8.mybatis使用主鍵自增
- 9. #{}中的參數處理
- 10. #{}與${}區別
- 11. 集合數據的查詢
- 12 動態sql
- 12.1 if
- 12.2 choose, when, otherwise
- 12.3 trim, where, set
- 12.4 foreach
- 代碼位置
- 2. mybatis第二天
- 1.封裝map類型的數據
- 2. resultMap自定義封裝規則
- 0代碼位置
- 3. mybatis緩存機制
- ssm整合
- 1.maven
- 2.ssm基礎環境搭建
- 2-1 引入項目依賴的jar包
- 2-2 引入bootstrap,jquery
- 2-3 創建項目包結構
- 2-4 編寫web.xml配置文件
- 2-5 編寫sping,springmvc,mybatis配置文件
- 2-6 逆向工程mbg.xml
- shiro安全框架
- 1.shiro簡介
- 易購Buy商城
- 第一天
- 1.課程計劃
- 2.電商行業背景
- 3.易購Buy介紹
- 4.易購Buy架構
- 5.工程搭建
- 6.工程啟動和測試
- 7.ssm框架整合
- 8.整合測試
- 9.svn
- 9.1 svn服務端
- 9.2 svn客戶端
- 第二天
- 1.SOA架構分析
- 2.dubbo使用方法
- 3.注冊中心
- 4.工程改造
- 5.easyUI
- maven
- 1.maven介紹
- 2.idea配置maven和服務器
- 3.創建web工程
- 4.分模塊構建工程
- 5. 代碼位置
- 6. nexus
- Luence搜索
- 1.了解搜索技術
- 2.Lucene的基本使用
- solr
- SolrCloud