全文搜索 介紹


首先數據是分為 結構化  和  非結構化的:

 

 

 非結構化數據的檢索一般用下面2個方法:

  • 順序掃描法
  • 全文搜索

順序掃描法,例:找一個包含 某字符 的文件,那么它會一個文件一個文件的查找,這個文件從頭查到尾,直到找到為止。【適用於小數據量文件,因為要擔心效率】

全文搜索:把一些非結構化的數據 轉為 結構化的數據,然后創建索引,實現搜索的目的【一般查詢大文件、多文件 什么的..】,例:字典,里面有拼音、偏旁部首、筆畫..這些就是 規則 或者說是 索引(結構化了)

 

全文搜索實現原理:

建立文本庫  數據源

建立索引  提取規律

執行搜索  用戶發起

過濾結構  查詢到的有些可能是臟數據等。。

返回結果  用戶接受

 

全文搜索實現技術

基於Java開源實現:

  1. Lucene
  2. ElasticSearch
  3. Solr

 

Lucene:基於全文檢索和搜尋的開源程序庫,由Apache軟件基金會支持和提供,有一個簡單卻強大的應用程序接口(API),能夠做全文索引和搜尋,在Java開發環境里Lucene是一個成熟的免費開放源代碼工具,但它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。

 

Elasticsearch是一個基於Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放源碼發布,是一種流行的企業級搜索引擎。Elasticsearch用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和許多其他語言中都是可用的。根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜索引擎,其次是Apache Solr,也是基於Lucene。

 

Solr是一個獨立的企業級搜索應用服務器,它對外提供類似於Web-service的API接口。用戶可以通過http請求,向搜索引擎服務器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。【貌似僅支持Json 和 Xml  ,但未證實】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM