国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java輕量級全文檢索引擎Lucene使用及優(yōu)化

這篇具有很好參考價值的文章主要介紹了Java輕量級全文檢索引擎Lucene使用及優(yōu)化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、簡介

1. Lucene 簡介

Lucene是一個開源的全文檢索引擎工具包由Doug Cutting編寫。它被設(shè)計用于實現(xiàn)全文搜索功能,即讀入一堆文本文件并將其轉(zhuǎn)換為易于搜索的數(shù)據(jù)結(jié)構(gòu)。Lucene提供了一組簡單而強大的API,使得索引和搜索過程變得非常方便。

2. Lucene 應(yīng)用領(lǐng)域和使用場景

Lucene廣泛應(yīng)用于從1200萬站點中進(jìn)行互聯(lián)網(wǎng)搜索等搜索引擎的后臺技術(shù)、新聞信息的全文索引、企業(yè)內(nèi)部文檔管理系統(tǒng)、電子郵件服務(wù)器以及應(yīng)用于科技文獻(xiàn)和專利文獻(xiàn)的有限空間全文搜索。

3. Lucene 到底是一個什么樣的工具

Lucene主要用于創(chuàng)建文檔集合索引,根據(jù)關(guān)鍵字快速地搜索這些文檔集合,它采用了倒排索引技術(shù),在搜索時能夠快速檢索到符合條件的數(shù)據(jù),并且能夠支持多種檢索方式。

二、Lucene快速入門

1. Lucene 的基本原理和架構(gòu)

Lucene的工作流程如下:

  1. 創(chuàng)建并建立索引器(IndexWriter),讀取需要建立全文索引的文本內(nèi)容。

  2. 使用分詞器(Tokenizer)和分析器(Analyzer)對文本進(jìn)行處理,將文本處理成一個個的索引詞項,然后構(gòu)建文檔(Document)并將其加入到索引中。文檔的集合就是這些需要建立全文索引的文本。

  3. 建立完索引庫(Index)后,在檢索時構(gòu)建查詢(Query),對索引庫進(jìn)行搜索,返回匹配結(jié)果。

Lucene架構(gòu)如下:

  • Directory:索引數(shù)據(jù)存儲位置。
  • Document:建立索引的數(shù)據(jù)單元。
  • Field:數(shù)據(jù)單元的組成部分。
  • Analyzer:數(shù)據(jù)分析器。
  • Query:包含關(guān)鍵詞和邏輯運算的查詢語句。
  • IndexSearcher:搜索器。
  • ScoreDoc:使用評分算法計算出的文檔得分、文檔ID和評分域等信息。

2. Lucene 常用 API

  • IndexWriter:寫入索引。
  • IndexReader:索引讀取器。
  • TermQuery:詞項查詢。
  • BooleanQuery:布爾查詢。
  • PhraseQuery:短語查詢。
  • QueryParser:查詢解析器。

3. 創(chuàng)建索引并執(zhí)行檢索操作

創(chuàng)建索引

// 定義索引存儲目錄
Directory directory = FSDirectory.open(Paths.get(indexPath)); 
// 定義分析器
Analyzer analyzer = new StandardAnalyzer(); 
// 配置索引寫入器
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); 
IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig);
// 清空索引庫
indexWriter.deleteAll(); 
// 創(chuàng)建文檔
Document document = new Document(); 
// 添加字段
document.add(new TextField("fileName", file.getName(), Field.Store.YES)); 
document.add(new TextField("content", new String(Files.readAllBytes(file.toPath())), Field.Store.NO));
// 添加文檔到索引庫
indexWriter.addDocument(document); 
// 提交索引
indexWriter.commit(); 
// 關(guān)閉writer
indexWriter.close(); 

執(zhí)行搜索

// 定義索引存儲目錄
Directory directory = FSDirectory.open(Paths.get(indexPath)); 
// 打開索引
IndexReader indexReader = DirectoryReader.open(directory);
// 創(chuàng)建搜索器
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
// 定義分析器 
Analyzer analyzer = new StandardAnalyzer(); 
// 關(guān)鍵詞解析器
QueryParser queryParser = new QueryParser("content", analyzer); 
// 解析查詢關(guān)鍵詞
Query query = queryParser.parse(keywords); 
// 進(jìn)行搜索
TopDocs topDocs = indexSearcher.search(query, 10); 
// 獲取搜索結(jié)果
ScoreDoc[] scoreDocs = topDocs.scoreDocs; 
for (ScoreDoc scoreDoc : scoreDocs) {
	// 獲取文檔
    Document document = indexSearcher.doc(scoreDoc.doc); 
    // 獲取文件名
    String fileName = document.get("fileName"); 
    // 獲取內(nèi)容
    String content = document.get("content"); 
    // 獲取文檔得分
    float score = scoreDoc.score; 
    System.out.println(fileName + " " + content + " " + score);
}
// 關(guān)閉reader
indexReader.close(); 

三、Lucene 使用詳解

1. 數(shù)據(jù)類型支持與數(shù)據(jù)預(yù)處理

在Lucene中支持的數(shù)據(jù)類型包括文本、數(shù)字、日期等。在存儲文本數(shù)據(jù)時Lucene會對文本進(jìn)行標(biāo)準(zhǔn)化、分詞等預(yù)處理操作。

2. 分詞器(Tokenizer)與過濾器(Filter)

Lucene的分詞器用于將文本分解成單詞,而過濾器則用于對分解出來的單詞進(jìn)行過濾,如去除停用詞、轉(zhuǎn)換大小寫等操作。

3. 高級查詢語法

除了基本查詢語法外Lucene還提供了豐富多樣的高級查詢語法,如通配符查詢、模糊查詢、范圍查詢等。

4. 排序 分頁 聚合

在搜索結(jié)果中可以按相關(guān)性得分、時間等字段進(jìn)行排序,并進(jìn)行分頁展示。此外Lucene還支持聚合操作,如基于某個字段進(jìn)行分組。

四、Lucene 性能優(yōu)化

1. 索引優(yōu)化

索引結(jié)構(gòu)分析

為了實現(xiàn)高效的搜索Lucene采用了倒排索引的結(jié)構(gòu)。在使用Lucene建立索引時,需考慮索引結(jié)構(gòu)是否合理,包括字段的選擇與設(shè)置、分詞和過濾等。

索引優(yōu)化的實踐技巧

優(yōu)化索引的方法有很多如增加內(nèi)存緩存、調(diào)整flush策略、使用doc values等。此外,還應(yīng)該避免索引中的臟數(shù)據(jù)、不必要的字段等。

2. 檢索優(yōu)化

檢索算法分析

Lucene使用的搜索算法包括向量空間模型和BM25算法等。在檢索時需考慮查詢語句的構(gòu)造、查詢解析器的選擇等。

檢索優(yōu)化的實踐技巧

優(yōu)化檢索的方法也有很多,如使用緩存、避免頻繁開啟新的IndexReader、選擇更快的排序算法等。

3. 內(nèi)存優(yōu)化

JVM 調(diào)優(yōu)

通過調(diào)整JVM參數(shù)如-Xms、-Xmx等可以提高內(nèi)存使用效率。也應(yīng)該避免頻繁的GC操作,減少內(nèi)存泄漏等問題。

緩存機制優(yōu)化

在檢索時合理使用緩存可以大大提高檢索效率??梢允褂肔RU緩存算法、SoftReference緩存等方式,來提高緩存的效果并避免OOM等問題。

五、Lucene 存儲過程與索引維護(hù)

1. 文檔與索引結(jié)構(gòu)存儲過程

1.1 文檔存儲過程

當(dāng)我們需要將數(shù)據(jù)存儲到 Lucene 中時,需要先將數(shù)據(jù)以文檔的形式存儲。下面是一個使用 Lucene 存儲文檔的例子:

// 創(chuàng)建一個文檔對象
Document doc = new Document();

// 添加文檔字段
doc.add(new StringField("id", "001", Field.Store.YES));
doc.add(new TextField("title", "Java程序設(shè)計", Field.Store.YES));
doc.add(new TextField("content", "Java程序設(shè)計入門到精通", Field.Store.YES));

// 將文檔添加到索引中
indexWriter.addDocument(doc);

在上面的代碼中,我們首先創(chuàng)建了一個文檔對象 doc,然后向其添加了三個字段:idtitlecontent,分別表示文檔的編號、標(biāo)題和內(nèi)容。StringField 類型的字段是不會被分詞器進(jìn)行處理的,而 TextField 類型的字段會根據(jù)指定分詞器將其內(nèi)容劃分為多個詞條。

最后,我們將文檔添加到 Lucene 索引中,這樣就完成了一個文檔的存儲過程。

1.2 索引結(jié)構(gòu)存儲過程

Lucene 的索引結(jié)構(gòu)是由一些段(segment)組成的,每個段都包含了一部分文檔的索引信息。創(chuàng)建新的索引、合并多個段和優(yōu)化索引等操作都會涉及到 Lucene 的索引維護(hù)機制。

下面是一個使用 Lucene 存儲索引結(jié)構(gòu)的例子:

// 創(chuàng)建索引目錄
Directory directory = FSDirectory.open(Paths.get("index"));

// 創(chuàng)建分詞器
Analyzer analyzer = new StandardAnalyzer();

// 創(chuàng)建索引寫入器
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter indexWriter = new IndexWriter(directory, config);

// 創(chuàng)建文檔對象
Document doc = new Document();
doc.add(new StringField("id", "001", Field.Store.YES));
doc.add(new TextField("title", "Java程序設(shè)計", Field.Store.YES));
doc.add(new TextField("content", "Java程序設(shè)計入門到精通", Field.Store.YES));

// 將文檔添加到索引中
indexWriter.addDocument(doc);

// 提交索引
indexWriter.commit();

// 關(guān)閉索引寫入器
indexWriter.close();

在上面的代碼中首先創(chuàng)建了一個索引目錄 directory,該目錄用于存儲所有索引數(shù)據(jù)。然后創(chuàng)建了一個標(biāo)準(zhǔn)分詞器 analyzer,用于將文本內(nèi)容劃分為多個詞語。接著創(chuàng)建了一個索引寫入器 indexWriter,它用于向索引目錄中寫入文檔索引信息。

接下來創(chuàng)建了一個文檔對象 doc,向其添加了三個字段。然后,將該文檔對象添加到索引寫入器中,并調(diào)用 commit() 方法提交索引。最后關(guān)閉了索引寫入器。

2. 索引維護(hù)與更新策略

在 Lucene 中索引維護(hù)是一個非常重要的環(huán)節(jié),它涉及到索引的更新策略、合并機制、數(shù)據(jù)壓縮等方面。下面是一些常見的索引維護(hù)與更新策略:

2.1 索引優(yōu)化

Lucene 中的索引優(yōu)化指的是對索引進(jìn)行優(yōu)化和壓縮,以提高搜索性能和減少存儲空間。在索引優(yōu)化過程中,會將多個段(segment)合并為較少的幾個段,并刪除廢棄的文檔。

// 創(chuàng)建索引目錄
Directory directory = FSDirectory.open(Paths.get("index"));

// 創(chuàng)建分詞器
Analyzer analyzer = new StandardAnalyzer();

// 創(chuàng)建索引寫入器
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter indexWriter = new IndexWriter(directory, config);

// 進(jìn)行索引優(yōu)化
indexWriter.forceMerge(1);

// 關(guān)閉索引寫入器
indexWriter.close();

在上面的代碼中創(chuàng)建了一個索引優(yōu)化器 forceMerge,用于將多個段合并為單個段。其中參數(shù) 1 表示只保留一個段,這意味著可以將索引文件盡可能的壓縮到最小。

2.2 文檔更新

Lucene 支持對文檔進(jìn)行新增、更新和刪除等操作。在進(jìn)行文檔更新時通常使用 IndexWriter.updateDocument() 方法來更新原有的文檔。

// 創(chuàng)建索引目錄
Directory directory = FSDirectory.open(Paths.get("index"));

// 創(chuàng)建分詞器
Analyzer analyzer = new StandardAnalyzer();

// 創(chuàng)建索引寫入器
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter indexWriter = new IndexWriter(directory, config);

// 更新文檔
Term term = new Term("id", "001");
indexWriter.updateDocument(term, doc);

// 關(guān)閉索引寫入器
indexWriter.close();

在上面的代碼中,我們首先創(chuàng)建了一個索引目錄、分詞器和索引寫入器。然后,使用 Term 對象指定需要更新的文檔,使用 IndexWriter.updateDocument() 方法進(jìn)行更新操作。最后,關(guān)閉索引寫入器。

六、 Lucene 與 Solr Elasticsearch 對比

1. Solr 與 Elasticsearch 特點比較

Solr 和 Elasticsearch 都是基于 Lucene 的搜索引擎系統(tǒng),它們都提供了全文檢索、分布式搜索、數(shù)據(jù)聚合和分析等功能。下面是 Solr 和 Elasticsearch 的一些基本介紹和特點比較:

Solr

Apache Solr 是一個開源的搜索引擎項目基于 Lucene 構(gòu)建,提供了豐富的搜索和聚合功能。Solr 支持 HTTP/JSON 接口,集成了分布式搜索、多租戶、數(shù)據(jù)導(dǎo)入和結(jié)果分析等功能。

Solr 優(yōu)點:

  • 易于安裝、使用和維護(hù)。
  • 提供了可視化的管理界面,可監(jiān)控索引和查詢性能。
  • 提供了批量導(dǎo)入和增量更新等功能。
  • 支持分布式架構(gòu),天然支持高可用和負(fù)載均衡。

Solr 缺點:

  • 可定制性較差,很難滿足一些特殊場景。
  • 查詢語法較為復(fù)雜,需要學(xué)習(xí) Solr 的查詢語法才能發(fā)揮其優(yōu)勢。

Elasticsearch

Elasticsearch 是一個分布式搜索引擎基于 Lucene 構(gòu)建。Elasticsearch 提供了 RESTful 接口,可輕松地進(jìn)行文檔檢索、聚合和分析。它的數(shù)據(jù)建模方式與傳統(tǒng)關(guān)系型數(shù)據(jù)庫類似,支持基于 JSON 格式的查詢和多租戶環(huán)境。Elasticsearch 也提供了 Node.js 等非 Java 開發(fā)語言的客戶端庫支持。

Elasticsearch 優(yōu)點:

  • 易于使用和部署,支持快速迭代和開發(fā)項目。
  • 支持多種數(shù)據(jù)類型和格式,具有良好的擴展性。
  • 支持實時搜索和聚合分析等豐富的功能。
  • 集成了常見的 NoSQL 特性,支持集群和高可用。

Elasticsearch 缺點:

  • 高并發(fā)查詢性能較差,需要有一定的技術(shù)架構(gòu)和負(fù)載均衡支持。
  • 索引和查詢語法相對 Solr 較為簡單,但易混淆和出錯。

2. Solr 與 Elasticsearch 的優(yōu)勢與劣勢分析

Solr 和 Elasticsearch 都有各自獨特的特點和優(yōu)勢,下面對它們進(jìn)行一個對比分析:

Solr 的優(yōu)勢

  • 模塊化設(shè)計、靈活性高。
  • 支持異步導(dǎo)入、分布式檢索等特性,適合海量數(shù)據(jù),處理速度快。
  • 有可視化的管理界面,易于操作和維護(hù)。
  • 對多租戶支持更友好。

Solr 的劣勢

  • 用戶體驗上沒有 Elasticsearch 強。
  • 可定制化較差,需要有較多的二次開發(fā)和編寫代碼來滿足一些特殊場景。
  • 壓力測試后查詢延時較大并存在崩掉等問題。

Elasticsearch 的優(yōu)勢

  • 廣受歡迎、資料豐富、易于學(xué)習(xí)、應(yīng)用場景廣。
  • 對 JSON 數(shù)據(jù)支持更友好,文檔型結(jié)構(gòu)讓使用者更容易明白。
  • 數(shù)據(jù)存儲方式更適合創(chuàng)新,支持復(fù)雜類型數(shù)據(jù)和動態(tài)字段構(gòu)建。
  • 可以通過插件提供額外的功能。

Elasticsearch 的劣勢

  • 對海量數(shù)據(jù)處理時速度慢,查詢緩慢。
  • 不支持熱備份和更新等數(shù)據(jù)遷移功能。

3. 實踐建議

Solr 和 Elasticsearch 在不同應(yīng)用場景下性能方面可能會有差異。在選擇搜索引擎時,需要根據(jù)具體業(yè)務(wù)情況進(jìn)行綜合考慮。一般來說,Elasticsearch 更適合對 JSON 格式的數(shù)據(jù)進(jìn)行搜索、聚合和分析,Solr 更適合處理文本數(shù)據(jù)和海量數(shù)據(jù)。同時在實際應(yīng)用中,我們需要注意以下幾點:

  • 首先,要根據(jù)業(yè)務(wù)需求來選擇搜索引擎。如果需要全文搜索和聚合分析,可以優(yōu)先考慮 Elasticsearch;如果需要處理海量文本和文檔數(shù)據(jù),可以優(yōu)先考慮 Solr。
  • 其次,需要評估搜索引擎的性能和資源消耗情況??梢允褂?JMeter 等壓力測試工具對搜索引擎集群進(jìn)行壓力測試,了解其查詢延時、結(jié)果正確性和負(fù)載均衡性等方面的表現(xiàn)。
  • 最后,需要在開發(fā)階段進(jìn)行充分測試和驗證,確保搜索引擎能夠滿足業(yè)務(wù)需求,并按照最佳實踐來進(jìn)行部署和維護(hù)。

七、常見問題與解決方案

1. 索引鎖定異常

當(dāng)多個線程同時訪問同一個 Lucene 索引時,可能會產(chǎn)生索引鎖定異常。解決方法是在多個線程之間共享 IndexWriter 對象,或者使用多個 IndexWriter 實例但是開啟不同的索引目錄。

2. 搜索效率低下

造成搜索效率低下的原因可能有很多,比如索引結(jié)構(gòu)設(shè)計不合理、文本分詞不合理等。解決方法包括重新設(shè)計索引結(jié)構(gòu)、使用更好的分詞器等。

3. 索引性能下降

隨著索引數(shù)據(jù)量的增加,索引性能會逐漸下降。解決方法包括使用更好的硬件環(huán)境、使用 SSD 硬盤等。

4. 內(nèi)存溢出問題

當(dāng) Lucene 處理大量數(shù)據(jù)時,可能會產(chǎn)生內(nèi)存溢出問題。解決方法包括調(diào)整 JVM 內(nèi)存參數(shù)、優(yōu)化代碼等。

5. 分片及集群環(huán)境下的優(yōu)化建議

在分片及集群環(huán)境下,每個節(jié)點都要處理部分索引,需要更多的協(xié)調(diào)和通訊工作。為了提高效率,可以盡可能減少通訊次數(shù),增加緩存機制等。同時,需要進(jìn)行負(fù)載均衡和容錯機制的設(shè)計。文章來源地址http://www.zghlxwxcb.cn/news/detail-597047.html

到了這里,關(guān)于Java輕量級全文檢索引擎Lucene使用及優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot封裝Elasticsearch搜索引擎實現(xiàn)全文檢索

    注:本文實現(xiàn)了Java對Elasticseach的分頁檢索/不分頁檢索的封裝 ES就不用過多介紹了,直接上代碼: 創(chuàng)建Store類(與ES字段對應(yīng),用于接收ES數(shù)據(jù)) Elasticsearch全文檢索接口:不分頁檢索 Elasticsearch全文檢索接口:分頁檢索 本文實現(xiàn)了Java對Elasticsearch搜索引擎全文檢索的封裝 傳入

    2024年02月04日
    瀏覽(38)
  • Manticore Search號稱Elasticsearch快15倍得全文檢索引擎

    Manticore Search號稱Elasticsearch快15倍得全文檢索引擎

    Manticore Search 是一個使用 C++ 開發(fā)的高性能搜索引擎,創(chuàng)建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,顯著改進(jìn)了它的功能,修復(fù)了數(shù)百個錯誤,幾乎完全重寫了代碼并保持開源。這一切使 Manticore Search 成為一個現(xiàn)代,快速,輕量級和功能齊全的數(shù)據(jù)庫,

    2024年04月13日
    瀏覽(18)
  • 后端架構(gòu)師必知必會系列:搜索引擎與全文檢索

    作者:禪與計算機程序設(shè)計藝術(shù) 什么是搜索引擎?它是指在互聯(lián)網(wǎng)上搜集、整理并快速索引海量信息的數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫,對用戶的查詢請求進(jìn)行快速、準(zhǔn)確的響應(yīng)的技術(shù)。搜索引擎又分為互聯(lián)網(wǎng)搜索引擎(英語: internet search engine)和本地搜索引擎(英語: local search engine)。 全文

    2024年02月05日
    瀏覽(26)
  • springboot整合MeiliSearch輕量級搜索引擎

    springboot整合MeiliSearch輕量級搜索引擎

    一、Meilisearch與Easy Search點擊進(jìn)入官網(wǎng)了解,本文主要從小微型公司業(yè)務(wù)出發(fā),選擇meilisearch來作為項目的全文搜索引擎,還可以當(dāng)成來mongodb來使用。 二、starter封裝 1、項目結(jié)構(gòu)展示 2、引入依賴包(我是有包統(tǒng)一管理的fastjson用的1.2.83,gson用的2.8.6) 3、yml參數(shù)讀取代碼參考

    2024年02月08日
    瀏覽(23)
  • Orillusion引擎正式開源!AIGC時代下的WebGPU輕量級3D渲染引擎!

    Orillusion引擎正式開源!AIGC時代下的WebGPU輕量級3D渲染引擎!

    開源生態(tài)的建設(shè)根植于社區(qū),開發(fā)者在社區(qū)共享、共創(chuàng)、共贏,將會激發(fā)出無限的創(chuàng)造力,這就是開源最大的魅力! 選擇開源,源于我們堅信,“獨行快,眾行遠(yuǎn)”! WebGPU經(jīng)過六年的時間,終于在2023年4月6日,由Chrome團隊發(fā)布。5月2號,在Chrome113版本上,WebGPU被默認(rèn)啟動。

    2024年02月11日
    瀏覽(21)
  • 教你使用PHP實現(xiàn)一個輕量級HTML模板引擎

    教你使用PHP實現(xiàn)一個輕量級HTML模板引擎

    ??作者簡介,黑夜開發(fā)者,全棧領(lǐng)域新星創(chuàng)作者?,2023年6月csdn上海賽道top4。多年電商行業(yè)從業(yè)經(jīng)驗,對系統(tǒng)架構(gòu),數(shù)據(jù)分析處理等大規(guī)模應(yīng)用場景有豐富經(jīng)驗。 ??本文已收錄于PHP專欄:PHP進(jìn)階實戰(zhàn)教程。 ??另有專欄PHP入門基礎(chǔ)教程,希望各位大佬多多支持??。 在 W

    2024年02月15日
    瀏覽(101)
  • Lucene和Solr和Elasticsearch區(qū)別,全文檢索引擎工具包Lucene索引流程和搜索流程實操

    Lucene和Solr和Elasticsearch區(qū)別,全文檢索引擎工具包Lucene索引流程和搜索流程實操

    我們生活中的數(shù)據(jù)總體分為兩種: 結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù) 。 結(jié)構(gòu)化數(shù)據(jù) :指具有固定格式或有限長度的數(shù)據(jù),如數(shù)據(jù)庫,元數(shù)據(jù)等。 非結(jié)構(gòu)化數(shù)據(jù) :指不定長或無固定格式的數(shù)據(jù),如 互聯(lián)網(wǎng)數(shù)據(jù)、郵件,word文檔等。 非結(jié)構(gòu)化數(shù)據(jù)又有一種叫法叫全文數(shù)據(jù) 按照數(shù)據(jù)的

    2024年02月03日
    瀏覽(28)
  • 告別if else!試試這款輕量級流程引擎吧,跟SpringBoot絕配!

    告別if else!試試這款輕量級流程引擎吧,跟SpringBoot絕配!

    之前同事用了一款輕量級的規(guī)則引擎腳本 AviatorScript ,我也跟著用了起來,真的挺香,能少寫很多代碼。這期就給大家介紹一下這款規(guī)則引擎。 AviatorScript 是一門高性能、輕量級寄宿于 JVM (包括 Android 平臺)之上的腳本語言。 它起源于2010年,作者對當(dāng)時已有的一些產(chǎn)品不是

    2024年02月13日
    瀏覽(34)
  • Lucene輕量級搜索引擎,真的太強了!!!Solr 和 ES 都是基于它

    Lucene輕量級搜索引擎,真的太強了!!!Solr 和 ES 都是基于它

    Lucene 是一個本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封裝 Lucene 適合那種輕量級的全文搜索,我就是服務(wù)器資源不夠,如果上 ES 的話會很占用服務(wù)器資源,所有就選擇了 Lucene 搜索引擎 全文搜索的原理是使用了倒排索引,那么什么是倒排索引呢? 先通過中文分詞器,將文

    2024年03月11日
    瀏覽(33)
  • Lucene輕量級搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封裝

    Lucene輕量級搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封裝

    1、Lucene 是什么 Lucene 是一個本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封裝 Lucene 適合那種輕量級的全文搜索,我就是服務(wù)器資源不夠,如果上 ES 的話會很占用服務(wù)器資源,所有就選擇了 Lucene 搜索引擎 2、倒排索引原理 全文搜索的原理是使用了倒排索引,那么什么是倒

    2024年03月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包