1. 程式人生 > >lucene 4.10 檢索mysql資料庫

lucene 4.10 檢索mysql資料庫


今天拿到一個需求,需要使用lucene 檢索mysql資料庫的一個通訊錄表,需要支援全文全欄位複合檢索.
使用者的表結構如下

 

     (通訊錄mysql表結構)

 

lunece檢索mysql 表結構


在網上找了一些例子,由於網上這些例子都不是基於lucene 4的,需要進行改動,這裡我把這裡好的程式碼共享一下..
本專案的例子基於 lucene 4.10 也就是lucene 4.0的最後一個版本,當前最新的版本是lucene 5.0 ,沒注意看有什麼改進..但是作為一個有經驗的老員工來說,使用技術一定不要用最新的,剛釋出的,老一點的技術更穩定,資料更多..

lunece檢索mysql 表資料

本專案例子需要依賴如下四個jar檔案,大家自己去lucene官網下載即可

lunece檢索mysql


   專案依賴的jar

package  com.text;   import  java.io.File; import
  java.sql.Connection; import  java.sql.DriverManager; import  java.sql.PreparedStatement; import  java.sql.ResultSet; import  java.sql.SQLException;
  import  org.apache.lucene.analysis.Analyzer; import  org.apache.lucene.analysis.standard.StandardAnalyzer; import  org.apache.lucene.document.Document; import  org.apache.lucene.document.Field; 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.index.IndexWriterConfig.OpenMode; import  org.apache.lucene.queryparser.classic.MultiFieldQueryParser; import  org.apache.lucene.search.BooleanClause; import  org.apache.lucene.search.IndexSearcher; import  org.apache.lucene.search.Query; import  org.apache.lucene.search.ScoreDoc; import  org.apache.lucene.search.TopDocs; import  org.apache.lucene.store.Directory; import  org.apache.lucene.store.FSDirectory; import  org.apache.lucene.util.Version;   //Lucene 為mysql資料庫表 簡歷完整索引 public  class  LuceneDB {   Connection conn =  null ;   // lucene 連線mysql資料庫   private  final  String URL =  "jdbc:mysql://127.0.0.1:3306/portal?useUnicode=true&characterEncoding=UTF8" ;

相關推薦

lucene 4.10 檢索mysql資料庫

今天拿到一個需求,需要使用lucene 檢索mysql資料庫的一個通訊錄表,需要支援全文全欄位複合檢索. 使用者的表結構如下        (通訊錄mysql表結構)   在網上找了一些例子,由於網上這

lucene索引並搜尋mysql資料庫

 由於對lucene比較感興趣,本人在網上找了點資料,終於成功地用lucene對 MySQL 資料庫 進行索引建立併成功搜尋,先總結如下:     首先介紹一個jdbc工具類,用於得到Connection物件:

告訴你10MySQL資料庫的小技巧!

無論是運維、開發、測試,還是架構師,資料庫技術是一個必備加薪神器,那麼,一直說學習資料庫、學MySQL,到底是要學習它的哪些東西呢? 1、如何快速掌握MySQL? 培養興趣   興趣是最好的老師,不論學習什麼知識,興趣都可以極大地提高學習效率。當然學習MySQL 5.6也不例外。   夯

Python學習總結筆記(10)-- MySQL資料庫操作之SQLAlchemy使用總結

SQLAlchemy是一個著名的ORM框架,使用ORM操作資料庫,不用去關注SQL語句本身,這樣可以提高開發的效率。同時使用ORM框架雖然可以減少程式碼編寫的消耗,但是可能也會執行很多冗餘的資料庫操作,降低程式的執行效率。不過總的來說,合理利用ORM框架與資料庫

zabbix系列(二)zabbix3.0.4新增對mysql資料庫效能的監控

zabbix3.0.4新增Mysql的監控 zabbix3.0 server已自帶mysql的模板了,只需安裝agent端,然後在web端給主機增加模板就行了。 Agent端操縱 /etc/zabbix/zabbix_agentd.d/userparameter_mysql

Lucene 4.10.3到Lucene 7.1.0:帶你瞭解版本之間的些許差異

一.環境說明: ※Windows 10 v1709 ※IDEA 2017.2.6 ※JDK 1.8.0_144 ※Lucene 7.1.0 二.哪裡有差異 因本人能力有限,所以也只是放出我在更新版本的時候,專案中用到的需要升級的地方,其他還未研究.

菜鳥學資料庫——Windows 10安裝MySQL 8.0.12 解壓版

文章目錄 下載 解壓 配置環境變數 初始化 安裝、啟動服務 修改密碼 結束 下載 下載地址 解壓 解壓到你想要的位置 配置環境變數 新建 MYSQL_HOME ,對應的值為你剛剛解壓的目錄,如

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.10' (111) 客戶端連線 centos 7 mysql 資料庫失敗

參考 https://stackoverflow.com/questions/1673530/error-2003-hy000-cant-connect-to-mysql-server-on-127-0-0-1-111 排查了 /etc/my.cnf 裡面的 bin

Mysql資料庫學習(4)階段性完結

-- 倒序輸出全部使用者的許可權資訊 SELECT * from users order by powers  desc -- 統計女生人數,靈活使用count,看題目要求,你要計算的是什麼? SELECT  COUNT(sid) FROM `student` WHERE sse

5.4 MySql資料庫_ORM對映

1. 【強制】在表查詢中,一律不要使用 * 作為查詢的欄位列表,需要哪些欄位必須明確寫明。 說明: 1 ) 增加查詢分析器解析成本。 2 ) 增減欄位容易與 resultMap 配置不一致。 3)無用欄位增加網路消耗,尤其是 text 型別的欄位。 2. 【強制】 POJO 類的布林屬性不能加 is

python爬蟲系列(4.3-資料儲存到mysql資料庫中)

一、如果你對mysql資料庫還不太熟悉   二、基本操作 1、在python中使用pymysql連線mysql 2、安裝包 pip3 install pymysql 3、定義一個建立資料庫的方法(或者手動、SQL語句建立資料庫) # 定義一個建立資料庫的函

MySQL資料庫(一)__2018.10.29

1.模糊查詢:SELECT *FROM info WHERE 密碼1 LIKE'%89%'; 資料庫通過SQL語言來管理。 DDL:資料定義語言 DML:資料操作語言 DQL:資料查詢語言 DCL:資料控制語言 整合開發環境:MAMP、MapServer。 通過寫一些SQ

絕對乾貨,4分鐘插入1000萬條資料到mysql資料庫

轉:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的資料庫為,mysql資料庫5.7版本的 1.首先自己準備好資料庫表 其實我在插入1000萬條資料的時候遇到了一些問題,現在先來解決他們,一開始我插入100萬條資料時候報錯,控制

【搞定MySQL資料庫】之事務的4種隔離級別詳解

資料庫事務的隔離級別有4種,由低到高分別為Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過事例一一闡述它們的概念與聯絡。 1、讀未提交 

CentOS 7.4安裝 MySQL資料庫

CentOS 7 版本將MySQL資料庫軟體從預設的程式列表中移除,用MariaDB代替了,MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社群採用分支的方式來避開這個風險。

mysql學習(4)python操作資料庫

整理了一下前面3期學的內容後,現在練習使用python去操作資料庫 #!python3# coding:utf-8import pymysqlclass mysql_option(): def __init__(self, host, port, username, pwd, **kwargs):

mysql資料庫學習筆記10-事務、檢視、索引

事務 ============================================     *) 事務是資料操作的最小單元     *) 多個數據增刪改操作,完成的一項業務處理     *) 如果事務事務成功,其中每一項

菜鳥學習資料庫(七)——Windows 10安裝MySQL 8.0.12 解壓版

下載 下載地址 解壓 解壓到你想要的位置 配置環境變數 新建 MYSQL_HOME ,對應的值為你剛剛解壓的目錄,如D:\mysql-8.0.12-winx64。在path中新增 %MYSQL_HOME%\bin 。 初始化 在MySQL根目錄下新建 my.

MYSQL資料庫事務4種隔離級別及7種傳播行為

事務的特性: 原子性:事務的不可分割,組成事務的各個邏輯單元不可分割。 一致性:事務執行的前後,資料完整性保持一致。 隔離性:事務執行不應該受到其他事務的干擾。 永續性:事務一旦結束,資料就持久化到資料庫中。 檢視/設定隔離級別    檢視:SELECT @@tx

mysql學習【第4篇】:資料庫之資料型別 資料庫之資料型別

資料庫之資料型別 首先補充點了解的小知識; select * from mysql.user #顯示出來亂了 select * from mysql