1. 程式人生 > >Lucene新增刪除索引(增量索引)

Lucene新增刪除索引(增量索引)

1。資料庫中新增資料

增加新紀錄:

IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), false);

false:在原先基礎上新增,不覆蓋之前,增量索引

true:重新建立

2。資料庫中更新資料

判斷是否有

刪除陳舊記錄:

public void updateIndex(){

  String INDEX_DIR = "d:\\index_update";
  Directory dir;
  try {
   dir = FSDirectory.getDirectory(INDEX_DIR);
   IndexReader reader = IndexReader.open(dir);
   Term term = new Term("ID","1"); //---精確查詢,刪除此紀錄

   Query query = new TermQuery(term);
   IndexSearcher is = new IndexSearcher(dir);
   Hits hits = is.search(query);
   System.out.println( "刪除前"+hits.length() + "  個結果! ");

//刪除-----使用deleteDocument只能對term進行刪除
   reader.deleteDocuments(term);
   reader.close(); 


   dir = FSDirectory.getDirectory(INDEX_DIR);
   IndexReader reader1 = IndexReader.open(dir);
   Term term1 = new Term("ID","1"); 
   Query query1 = new TermQuery(term);
   IndexSearcher is1 = new IndexSearcher(dir);
   Hits hits1 = is1.search(query1);
   System.out.println("刪除後"+ hits1.length() + "  個結果! ");

//   IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), false);
//   Document doc = new Document();
//   doc.add(new Field("TicketType", "演唱會111", Field.Store.YES, Field.Index.TOKENIZED)); 
//   writer.addDocument(doc);
//   writer.optimize();
//   System.out.println("更改索引:"+doc.getField("TicketType").stringValue());
//   writer.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 
  

 }

相關推薦

Lucene新增刪除索引增量索引

1。資料庫中新增資料 增加新紀錄: IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(), false); false:在原先基礎上新增,不覆蓋之前,增量索引 true:重新建立 2。資

lucene 7.2版本之前用的4.0 的。。發現好多都變了。。—— 建立索引記憶體中

package com.shang.lucene.index.create; import com.shang.lucene.index.abstracts.IndexAbstract; import com.shang.lucene.jdbc.DataBase; imp

ElasticSearch 用ik分詞器建立索引java API

tle creat analyzer undefined 全文搜索 () map 多用戶 tcl   ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Ja

索引快速查詢

數據量 EDA led 數據 哪些 如果 參考 類型 rom 《沁園春·雪》 北國風光,千裏冰封,萬裏雪飄。 望長城內外,惟餘莽莽;大河上下,頓失滔滔。 山舞銀蛇,原馳蠟象,欲與天公試比高。 須晴日,看紅妝素裹,分外妖嬈。 江山如此多嬌,引無數英雄竟折腰。 惜秦皇漢武,略輸

MySQL8.0新特性——不可見索引Invisible Indexes

mysq test 沒有 官方 ash ann bar htm 一個 MySQL8.0新特性——不可見索引(Invisible Indexes)MySQL8.0開始支持看不見的索引。一個看不見的索引根本不被優化器使用,但是通常是保持正常的。默認情況下索引是可見的。不可見的索

MySQL 8.0實驗室---MySQL中的倒敘索引Descending Indexes

mysql 重新 .cn 創建表 https 正序 tro 一個 刪除 譯者註:MySQL 8.0之前,不管是否指定索引建的排序方式,都會忽略創建索引時候指定的排序方式(語法上不會報錯),最終都會創建為ASC方式的索引,在執行查詢的時候,只存在forwarded(正向

Impossible Mission - 單機百億檔案的極致索引設計篇

一. 背景 當下資訊社會每天都產生大量需要儲存的資料,這些資料在刺激海量儲存技術發展的同時也帶來了新的挑戰。比如,海量資料為儲存系統增加了大量的小檔案,這些小檔案的元資料如何管理?如何控制定位某個檔案的時間和空間開銷? 隨著對資料實時性要求的提高, 檔案也越來越趨於碎片化,像短視訊、直播

機房---新增刪除使用者一次判斷控制元件空值

新增部分的思路前面的流程圖基本適用就不附圖啦~主要聊一下怎麼一次判斷當前窗體是否存在空值,註冊篇有寫一次清空控制元件的,一次判斷當前窗體是否存在空值就是在其基礎上進行的改動 程式碼 For Each ctrl In Me.Controls If Type

Matlab中的矩陣的單一索引線性索引

可參考官方文件: https://ww2.mathworks.cn/help/matlab/math/matrix-indexing.html   重點說以下線性索引: 可以使用單個下標A(k) 表示matlab矩陣中的元素,MATLAB不會以矩陣和陣列在MATLAB命令列

主鍵primary key和唯一索引unique index區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。 所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束,防止出現數

sql:主鍵primary key和唯一索引unique index區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。  所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束

學習MongoDB--5-2索引檢視索引的使用,管理索引

前一篇簡單介紹了索引,並給出了基本的索引使用,這一次,我們進一步說一下MongoDB中的索引,包括如何檢視查詢是否走索引,如何管理索引和地理空間索引等。 【使用explain和hint】 前面講高階查詢選項時,提到過"$explain" 和 ”$hint“可以作為包裝查詢的

樹形索引鍵樹

一、鍵樹鍵樹又稱為數字查詢樹,它是一顆度大於等於2的樹,樹中的每個結點中不是包含一個或幾個關鍵字,而是隻含有組成關鍵字的符號。例如,若關鍵字為數值,則結點中只包含一個數位;若關鍵字為單詞,則結點中只包含

樹形索引B+樹

一棵m階的B+樹和m階的B-樹的異同點在於:      1.有n棵子樹的結點中含有n 個關鍵字,即每個關鍵碼對應一顆子樹      2.所有的終端結點中包含了全部關鍵字的資訊,及指向含有這些關鍵字記錄的

聯合索引複合索引在B+樹上的結構

這幾天看了B系列樹和資料庫索引相關的一些知識,看完這篇文章之後《MySQL索引背後的資料結構及演算法原理》 收穫很大,瞭解了很多知識,隨後也產生了一個想法:聯合索引 對應的 B+ 樹 是一個什麼樣子的結構。帶著這個想法各種百度 也沒得到自己想要的答案,那我就把我的想法寫下

MySQL 8.0實驗室---MySQL中的倒序索引Descending Indexes

譯者注:MySQL 8.0之前,不管是否指定索引建的排序方式,都會忽略建立索引時候指定的排序方式(語法上不會報錯),最終都會建立為ASC方式的索引,在執行查詢的時候,只存在forwarded(正向)方式對索引進行掃描。關於正向索引和反向索引,邏輯上很容易理解,這裡有兩個相關的概念:正向索引或者反向(倒序)

PostgreSQL 11 新特性之覆蓋索引Covering Index

文章目錄 通常來說,索引可以用於提高查詢的速度。通過索引,可以快速訪問表中的指定資料,避免了表上的掃描。 有時候,索引不僅僅能夠用於定位表中的資料。某些查詢可能只需要訪問索引的資料,就能夠獲取所需要的結果,而不需要再次訪問表中的資料。這種訪問資料的方法叫做 In

Mysql 四普通索引BTREE索引的使用

在mysql中,普通索引,也就是BTREE索引分兩類,一個是單列索引 另一個是多列索引 1.索引的作用: 當一個數據表只有很少量的資料時,索引體現不了他的價值。但若是一個表有10w多的資料時,查詢資

keras SegNet使用池化索引pooling indices

keras中不能直接使用池化索引。最近學習到SegNet(網上許多錯的,沒有用池化索引),其中下采樣上取樣用到此部分。此處用到自定義層。 完整測試程式碼如下。 """ @author: LiShiHang @software: PyCharm @file: utils.py @ti

ElasticSearch通過Scroll方式遍歷索引Python程式碼

當我們要查詢的資料量過大的時候,用es的from+size的方式會報錯,會提示你from+size不能大於10000那麼可以用es的scroll方式,實際是一種深度分頁機制直接上程式碼:#-*- cod