KR19990070838A - 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조 - Google Patents

데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조 Download PDF

Info

Publication number
KR19990070838A
KR19990070838A KR1019980005930A KR19980005930A KR19990070838A KR 19990070838 A KR19990070838 A KR 19990070838A KR 1019980005930 A KR1019980005930 A KR 1019980005930A KR 19980005930 A KR19980005930 A KR 19980005930A KR 19990070838 A KR19990070838 A KR 19990070838A
Authority
KR
South Korea
Prior art keywords
posting
index
document
sub
identifier
Prior art date
Application number
KR1019980005930A
Other languages
English (en)
Other versions
KR100285265B1 (ko
Inventor
황규영
박병권
한욱신
이영구
Original Assignee
윤덕용
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤덕용, 한국과학기술원 filed Critical 윤덕용
Priority to KR1019980005930A priority Critical patent/KR100285265B1/ko
Priority to US09/250,487 priority patent/US6349308B1/en
Publication of KR19990070838A publication Critical patent/KR19990070838A/ko
Application granted granted Critical
Publication of KR100285265B1 publication Critical patent/KR100285265B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99947Object-oriented database structure reference

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 다수개의 포스팅 리스트가 저장되는 공간을 확보하고 키워드 입력에 따라 대응하는 포스팅 리스트의 저장공간으로 인덱스시키는 역 인덱스 구조에 관한 것으로 특히, 정보 검색과 데이터 베이스 시스템이 밀결합된 환경에서 문서의 추가, 삭제, 수정 및 검색 성능을 높이고자 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾을 수 있고 포스팅 리스트가 문서 식별자 순의 정렬을 효율적으로 유지할 수 있는 역 인덱스 저장 구조에 관한 것으로 그 기술적 해결 수단은 포스팅 리스트를 대용량 객체에 저장하되, 각각의 포스팅 리스트에 문서 식별자를 인덱스시키는 각각의 서브 인덱스를 일대일 매칭 연결시킨 것이다.

Description

데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조(An inverted index storage structure using sub-indexes and large objects for tightly coupling information retrieval with database management system)
본 발명은 정보 검색과 데이터 베이스 시스템이 밀결합된 환경에서 문서의 추가, 삭제, 수정 및 검색 성능을 높이고자 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾을 수 있고 포스팅 리스트가 문서 식별자 순의 정렬을 효율적으로 유지할 수 있는 역 인덱스 저장 구조에 관한 것이다.
일반적으로, 컴퓨터 시스템의 발전과 더불어 정보의 저장형식이 서적이나 마이크로 필림등의 형태에서 CD 롬이나 LD등의 디지털적인 저장매체의 형태로 전환되고 있는데, 상술한 바와 같은 디지털 저장매체들의 장점은 대용량의 활자 데이터나 영상 및 음향에 대한 데이터가 저장되면서도 매우 콤펙트(compact)한 저장매체의 부피를 유지할 수 있다는 점이다.
또한, 통신분야의 발전에 힘입어 어떤 특정인이 소장하고 있는 정보의 범위는 줄어들고 불특정 다수의 사람들과 공유하는 경우가 늘어나고 있다. 즉, 매우 특정한 정보(개인적 사생활, 연구, 국가기밀, 사기밀 등등)를 제외하고는 통신망에 연결된 가입자 간에 서버측에서 저장되어 있는 정보들을 공유하게 되는 것이다.
한편, 전자신문, 전자도서관, 전자상거래 등 전자문서를 통한 정보의 교환이 활발해지면서 방대한 양의 전자문서가 새로이 생성, 수정되거나 소멸되고 있다. 따라서 방대한 전자문서에 대한 신속한 검색을 제공할 수 있는 정보검색 시스템의 중요성이 높아지고 있는데, 이러한 정보검색 시스템은 문서로부터 키워드들을 추출하고 추출된 키워드를 바탕으로 구축한 인덱스를 사용하여 사용자의 질의에 적합한 문서를 검색해 주기 위한 것으로 효율적인 인덱스 구조가 중요시 되어졌다.
그에따라, 근래 정보검색 시스템에서 가장 널리 사용되고 있는 인덱스 구조는 키워드가 주어졌을 때 그것이 나타나는 문서들을 찾아주는 역 인덱스(inverted index) 방식으로, 이를 위하여 역 인덱스는 각 키워드 별로 포스팅 리스트(posting list)를 유지하고 있다.
이때, 상술한 포스팅 리스트란 포스팅의 리스트를 칭하는 것으로, 포스팅은 그 키워드가 발생한 어떤 한 문서의 식별자와 그 문서 내에서의 발생위치 정보로 구성되기 때문에 포스팅 리스트는 그 키워드가 발생한 문서의 빈도에 따라 매우 긴 것에서부터 매우 짧은 것에 이르기까지 다양하다. 또한, 그리고 같은 키워드라도 문서마다 발생위치 정보가 다르기 때문에 각 포스팅의 길이도 일정하지 않다.
따라서, 역 인덱스는 문서의 추가, 삭제, 수정에 따라 효율적으로 갱신될 수 있는 저장 구조를 가져야 한다. 문서가 추가되면 새로운 포스팅을 추가하여야 하므로 포스팅 리스트의 길이가 늘어나고, 문서가 삭제되면 삭제된 문서의 포스팅을 삭제하여야 하므로 포스팅 리스트의 길이가 줄어든다. 그리고, 문서가 수정되면 기존 문서의 포스팅을 삭제하고 수정된 문서의 포스팅을 삽입하여야 하므로 포스팅 리스트의 길이가 변한다. 따라서, 길이가 가변적인 포스팅 리스트의 저장을 효율적으로 지원할 수 있는 역 인덱스 저장 구조가 필요하게 된다.
상술한 필요성에 따라 역 인덱스를 저장하기 위한 가장 간단한 방법은 키워드와 포스팅을 레코드 구조로 하는 데이터 베이스 테이블을 사용하는 방법이다. 그러나, 이 방법은 동일한 키워드가 발생 빈도 만큼 중복 저장되므로 많은 저장 공간을 필요로 할 뿐만 아니라 질의 성능이 떨어지는 것으로 알려져 있다.
그러므로, 데이터 베이스 테이블을 이용하지 않고 역 인덱스를 인덱스 구조에 저장하는 방법 즉, 키워드에 대한 인덱스를 구축하고 단말 노드의 포인터 필드에서 포스팅 리스트를 가리키는 방법들이 많이 연구되고 있는데, 그 대표적인 역 인덱스 저장 구조가 첨부한 도 1에 도시되어 있다.
첨부한 도 1에서 참조번호 10은 키워드에 대한 인덱스를 나타내고, 참조번호 11은 포스팅 리스트가 저장된 저장 공간을 나타낸다.
따라서, 첨부한 도 1에 도시되어 있는 역 인덱스 저장구조는 앞서 언급한 데이터 베이스 테이블 사용 방식이 아니므로, 저장 공간 효율과 질의 성능 면에서 더 우수함을 실험을 통하여 알수 있는데,
문서의 동적 추가로 인하여 포스팅 리스트의 크기가 지속적으로 증가할 경우에 번호 11의 저장 공간을 할당하는 방법에 관한 많은 연구가 진행되고 있다.
그러나, 현재까지 제안되어진 방식들은 문서의 동적 추가에 따른 포스팅 리스트 크기의 증가만 고려하고, 동적 수정이나 삭제에 따른 축소는 고려하지 않았으며 더욱이, 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾는 문제와 문서의 추가, 삭제, 수정에 따라 포스팅 리스트가 동적으로 갱신되는 환경에서 포스팅 리스트가 문서 식별자 순 정렬을 유지하는 방법에 대해서도 고려하지 않았다.
그 결과, 특정 문서에 대한 키워드 검색 성능과 문서의 동적 수정, 삭제 성능이 크게 떨어진다.
상술한 문제점을 해소하기 위한 본 발명의 목적은 정보 검색과 데이터 베이스 시스템이 밀결합된 환경에서 문서의 추가, 삭제, 수정 및 검색 성능을 높이고자 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾을 수 있고 포스팅 리스트가 문서 식별자 순의 정렬을 효율적으로 유지할 수 있는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조를 제공하는 데 있다.
도 1은 종래 역 인덱스 방식의 저장 구조
도 2는 본 발명에 따른 역 인덱스 저장구조가 구현되는 시스템의 대략적인 간략 구성 예시도
도 3은 본 발명에 따른 역 인덱스 방식의 저장 구조
도 4는 도 3에 도시되어 있는 서브 인덱스에서 오프셋 방식을 이용한 예를 도시한 예시도
도 5는 본 발명에 따른 역 인덱스 방식의 저장 구조를 이용한 포스팅 추가의 과정예시도
도 6은 본 발명에 따른 역 인덱스 방식의 저장 구조를 이용한 포스팅 삭제의 과정예시도
도 7은 본 발명에 따른 역 인덱스 방식의 저장 구조를 이용한 포스팅 검색의 과정예시도
도 8a 내지 도 8b는 본 발명에 따른 역 인덱스 방식의 저장 구조와 데이터 베이스 시스템간의 데이터 매칭 관계를 나타내는 예시도
도면의 주요부분에 대한 부호의 설명
15 : CPU 10 : 메모리
25 : 응용 프로그램 30 : 데이터 베이스 관리 시스템 영역
35 : 데이터 베이스 질의 처리 영역 40 : 정보검색 시스템 영역
45 : 데이터 베이스 객체 버퍼 50 : 포스팅 리스트 버퍼
55 : 문서 데이터 베이스
상기 목적을 달성하기 위한 본 발명의 특징은, 다수개의 포스팅 리스트가 저장되는 공간을 확보하고 키워드 입력에 따라 대응하는 포스팅 리스트의 저장공간으로 인덱스시키는 역 인덱스 구조에 있어서, 포스팅 리스트를 대용량 객체에 저장하되, 각각의 포스팅 리스트에 문서 식별자를 인덱스시키는 각각의 서브 인덱스를 일대일 매칭 연결시키는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 서브 인덱스는 포스팅 리스트와 연결되어 문서 식별자를 인덱스시키는데 있어 오프셋 배열을 이용하여 간접적으로 가르키는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 서브 인덱스는 상기 대용량 객체에 저장된 각각의 포스팅 리스트에 연결시 일정 길이이상의 포스팅 리스트에 선택적으로 연결가능한 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 포스팅 리스트는 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 데 있다.
상기 목적을 달성하기 위한 본 발명의 다른 특징은, 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 새로운 포스팅 삽입 방법에 있어서:
새로운 포스팅의 오프셋 배열을 위한 공간이 부족하지 않은가를 검색하는 제 1 단계와, 상기 제 1 단계에서 오프셋 배열을 위한 공간이 부족하다고 판단되면 현재 오프셋 배열의 크기를 두배로 확장하는 제 2 단계와, 상기 제 1 단계에서 오프셋 배열을 위한 공간이 부족하지 않다고 판단되거나 상기 상기 제 2 단계를 수행한 이후의 경우 비어 있는 오프셋 배열에 새로운 포스팅의 문서 식별자의 원소를 하나 할당 받으며 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 큰 가를 판단하는 제 3 단계와, 상기 제 3 단계를 통해 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 크다고 판단되는 경우 새로운 포스팅을 기존의 포스팅 리스트의 끝에 추가하는 제 4 단계와, 상기 제 3 단계를 통해 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 크지 않다고 판단되는 경우 서브 인덱스의 탐색을 통해 결정된 바이트 오프셋에 새로운 포스팅을 삽입하는 제 5 단계, 및 상기 제 4 단계 또는 제 5 단계를 수행한 후 새로운 포스팅과 바이트 오프셋이 바뀌어진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정한 후 추가된 문서의 식별자와 할당 받은 오프셋 배열 원소번호를 서브 인덱스에 삽입하는 제 7 단계를 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 포스팅 삭제 방법에 있어서:
서브 인덱스를 탐색하여 삭제된 문서의 식별자가 포함된 포스팅의 저장 위치를 알아내어 해당 포스팅을 삭제하는 제 1 단계와, 상기 제 1 단계에서 삭제된 포스팅과 저장 위치가 바뀌어 진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정하는 제 2 단계, 및 상기 제 2 단계에서 삭제된 포스팅의 오프셋 배열 원소를 가리키던 서브 인덱스 엔트리를 삭제하는 제 3 단계를 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 포스팅 검색 방법에 있어서:
입력되는 키워드를 기준으로 키워드 인덱스를 탐색하여서 해당 키워드에 대응하는 포스팅 리스트가 저장되어 있는 대용량 객체를 검색하는 제 1 단계와, 특정 문서 식별자가 존재하는 가를 판단하는 제 2 단계와, 상기 제 2 단계에서 특정 문서 식별자가 존재하는 경우 주어진 특정 문서 내에 주어진 키워드가 포함되는 지를 검색하기 위해 서브 인덱스를 탐색하여 주어진 특정 문서의 포스팅을 찾게되고 검색된 특정 문서의 포스팅을 읽어 반환하는 제 3 단계, 및 상기 제 2 단계에서 특정 문서 식별자가 존재하지 않는 경우 대용량 객체 내에 저장된 포스팅 리스트를 순차적으로 읽어 반환하는 제 4 단계를 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조와 매칭되는 데이터 베이스 시스템의 구조에 있어서:
데이터 베이스 시스템에는 문서식별자와 문서번호와 작성자와 작성날짜 및 본문으로 구성된 다수개의 데이터 베이스 객체가 존재하고, 상기 데이터 베이스 객체는 어드레스의 개념으로 객체 식별자와 문자식별자를 사용하여
포스팅 리스트내의 포스팅과 일대일 매칭관계를 이루는 물리적 형태를 갖는 데 있다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 살펴보기로 한다.
우선, 본 발명에서 달성하고자 하는 기술적 요지를 간략히 설명하면, 전자문서의 동적 추가, 삭제, 수정이 빈번한 환경에서는 문서에 대한 일관성 있는 관리가 중요하며 이를 위해서는 동시성 제어와 파손 회복 기능 등 데이터 베이스 관리 시스템 기능이 필요하다.
또한, 문서에 대한 검색은 문서가 가진 정형 데이터에 대한 검색과 비정형 데이터에 대한 검색으로 이루어지는데, 상술한 정형 데이터에 대한 검색은 데이터 베이스 관리 시스템이 잘 지원하고 있으며, 상기 비정형 데이터에 대한 검색은 정보검색 시스템이 잘 지원하고 있다. 따라서, 문서에 대한 일관성 있는 관리와 통합 검색을 위해서는 정보검색을 데이터 베이스 관리 시스템과 밀결합하는 것이 필요하다.
그러므로, 밀결합된 시스템에서는 데이터 베이스에 문서가 동적으로 추가, 삭제, 수정될 때 역 인덱스 구조가 효율적으로 갱신될 수 있어야 하고 역 인덱스를 통한 정보검색과 정형 데이터에 대한 데이터 베이스 검색이 통합 처리될 수 있어야 한다.
상술한 바와같은 역 인덱스 구조의 필요성에 의해 제안되어진 본 발명에 따른 역 인덱스 저장구조는 첨부한 도 2에 도시되어 있는 하드웨어적인 환경속에 적용되는데, 첨부한 도 3에는 본 발명에 따라 새롭게 제안되는 역 인덱스 저장구조가 도시되어 있다.
첨부한 도 3에 도시되어 있는 본 발명에 따른 역 인덱스 저장구조는 종래의 역 인덱스 구조에서 포스팅 리스트를 대용량 객체에 저장하고, 각각에 대하여 문자 식별자를 이용한 서브 인덱스를 구비시키고 있다는 것이다.
즉, 첨부한 도 3에서 참조번호 20은 키워드를 키 값으로 하는 B+트리 인덱스로서, 키워드가 주어지면 그 키워드의 포스팅 리스트가 저장되어 있는 대용량 객체(참조번호 21)를 찾아준다. 대용량 객체란 전문 텍스트(full text), 이미지(image), 오디오(audio), 비디오(video) 데이터와 같이 저장되는 객체의 크기가 디스크 페이지 크기를 초과하는 객체이며, 한 키워드에 대한 포스팅 리스트를 하나의 대용량 객체로 간주한다.
상술한 바와같이 대용량 객체를 이용하여 포스팅 리스트를 저장하면 다양하고 가변적인 길이 특성을 가진 포스팅 리스트의 관리가 대용량 객체 관리 기법에 의하여 자동적으로 이루어진다. Biliris는 다양한 대용량 객체 관리기법들 중에서 EXODUS 저장 시스템의 기법이 대용량 객체의 크기 변화를 가장 유연하게 지원할 수 있음을 분석을 통해 밝히고 있다. 따라서, 본 발명에서는 EXODUS의 대용량 객체 관리기법을 도입하였다(첨고문서: Biliris, A., The Performance of Three Databace Storage Structures for Managing Large Objects, In Proc. Intl. Conf. on Management of Data, ACM SIGMOD, pp 276-285, NewYork, 1992).
또한, 첨부한 도 3의 참조번호 22는 본 발명에서 고안한 서브 인덱스로서 각 대용량 객체마다 구축되어 있다. 상기 서브 인덱스(22)는 대용량 객체 내에 저장되어 있는 포스팅 리스트에 대하여 문서 식별자를 키로 하여 구축되는 인덱스로서 포스팅 리스트가 문서 식별자 순의 정렬을 자동적으로 유지하도록 하고 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾을 수 있도록 하기 위한 인덱스이다.
즉, 문서가 수정되었을 때 서브 인덱스를 통하여 수정된 문서의 포스팅을 문서 식별자 순으로 포스팅 리스트에 빠르게 삽입할 수 있고, 문서가 삭제되었을 때 서브 인덱스를 통하여 삭제된 문서의 포스팅을 포스팅 리스트에서 빠르게 삭제할 수 있으며, 특정 문서에 대한 키워드 검색을 할 때 서브 인덱스를 통하여 특정 문서의 식별자가 포함된 포스팅을 포스팅 리스트에서 빠르게 검색할 수 있다.
따라서 서브 인덱스를 이용하면 문서의 수정, 삭제나 특정 문서에 대한 키워드 검색 성능이 높아진다. 이러한 서브 인덱스는 항상 구축되는 것이 아니고 오버헤드를 줄이기 위하여 일정 길이 이상의 포스팅 리스트에 대해서만 구축되게 할 수 있으며 B+트리로 구현할 수도 있다.
상술한 바와같이 본 발명에 의해 제안된 역 인덱스 구조에 있어 서브 인덱스의 자세한 저장 구조를 첨부한 도 4을 참조하여 살펴보면, 서브 인덱스의 키는 문서 식별자가 되고 서브 인덱스가 가리키는 것은 대용량 객체 내에서 각 포스팅이 저장되어 있는 위치이다.
그러나, 서브 인덱스가 각 포스팅의 저장 위치를 직접 가리키게 되면 대용량 객체 중간에 새로운 포스팅을 삽입하거나 기존 포스팅을 삭제할 때, 이후에 저장된 모든 포스팅들의 저장 위치가 바뀌게 되므로 이들을 가리키는 서브 인덱스 엔트리들을 모두 갱신하여야 한다.
따라서, 본 발명에서는 이를 해결하기 위하여 포스팅 리스트이 앞 부분에 오프셋 배열(offset array)을 유지한다. 상기 오프셋 배열의 각 원소는 해당 포스팅의 저장 위치를 가리키고 있다. 저장 위치는 오프셋 배열 끝에서부터의 바이트 오프셋 값이다. 그러므로, 오프셋 배열의 크기가 변하더라도 포스팅의 저장 위치 즉, 바이트 오프셋 값은 변하지 않는다. 또한, 서브 인덱스는 각 포스팅의 저장 위치를 가리키고 있는 오프셋 배열의 원소를 가리킴으로써 포스팅의 저장 위치가 바뀌더라도 서브 인덱스는 영향을 받지 않게 된다.
상기 도 3와 도 4에 도시되어 있는 바와같은 구조의 역 인덱스 구조를 이용하여 문서가 추가되거나 수정되었을 때 새로운 포스팅 한 개를 삽입하는 알고리즘은 첨부한 도 5에 도시되어 있다.
도 5의 내용을 살펴보면, 스텝 S101에서 새로운 포스팅의 저장을 위한 오프셋 배열을 위한 공간이 부족하지 않은가를 판단하게 되는데, 상기 스텝 S101에서 오프셋 배열을 위한 공간이 부족하다고 판단되면 스텝 S102로 진행한다. 상기 스텝 S102에서는 오프셋 배열을 위한 공간 확보를 위하여 현재 오프셋 배열의 크기를 두배로 확장하게 된다.
이후, 상기 스텝 S101에서 오프셋 배열을 위한 공간이 부족하지 않다고 판단되거나 상기 스텝 S102에서 현재 오프셋 배열의 크기를 두배로 확장한 경우 스텝 S103으로 진행하는데, 스텝 S103에서는 비어 있는 오프셋 배열에 새로운 포스팅의 문서 식별자의 원소를 하나 할당 받는다.
상기 스텝 S103에서 새로운 원소를 비어 있는 오프셋 배열에 할당되는 과정중에 스텝 S104에서는 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 큰 지를 비교하는데, 비교치가 기존의 문서 식별자들 보다 크다면 스텝 S106으로 진행하여 새로운 포스팅을 포스팅 리스트의 끝에 추가하게된다.
만약, 상기 스텝 S104에서 비교치가 기존의 문서 식별자들 보다 크지 않다고 판단되면 스텝 S105로 진행하고, 상기 스텝 S106에서는 서브 인덱스의 탐색을 통해 결정된 바이트 오프셋에 새로운 포스팅을 삽입한다. 이때, 삽입된 포스팅 뒤에 저장된 모든 포스팅들의 바이트 오프셋은 삽입된 포스팅의 크기 만큼 커지게 된다. 단 여기서 대용량 객체의 관리 방법에 의해 포스팅의 물리적 위치 자체는 변하지 않는다.
상술한 스텝 S105나 스텝 S106의 과정을 통하여 새로운 포스팅이 삽입 또는 추가되어진 후 스텝 S107에서는 삽입(또는 추가)한 포스팅과 바이트 오프셋이 바뀌어진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정한다.
이후, 마지막으로 스텝 S108에서는 추가된 문서의 식별자와 할당 받은 오프셋 배열 원소번호를 서브 인덱스에 삽입한다.
상술한 과정을 통하여 새로운 포스팅 한 개를 삽입하는 과정을 살펴보았는데, 특정 문서가 삭제되는 경우 즉, 문서가 삭제되었을 때 삭제된 문서의 식별자를 포함하고 있는 포스팅 한 개를 포스팅 리스트에서 삭제하는 과정은 첨부한 도 6에 도시되어 있는 바와같다.
스텝 S201에서 서브 인덱스를 탐색하여 삭제된 문서의 식별자가 포함된 포스팅의 저장 위치를 알아내고, 스텝 S202에서는 해당 포스팅을 삭제한다.
이때, 삭제된 포스팅 뒤에 저장된 모든 포스팅들의 바이트 오프셋은 삭제된 포스팅의 크기 만큼 작아지게 된다. 단 여기서도 삽입 때와 마찬가지로 포스팅의 물리적 위치 자체는 변하지 않는다.
따라서, 스텝 S203에서는 삭제된 포스팅과 저장 위치가 바뀌어 진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정하고, 스텝 S204에서는 삭제된 포스팅의 오프셋 배열 원소를 가리키던 서브 인덱스 엔트리를 삭제한다. 이때, 삭제된 포스팅을 가르키던 오프셋 배열 원소는 새로운 포스팅의 삽입시 재 사용될 수 있다.
상술한 도 5와 도 6에 도시되어 있는 바와같은 과정을 통하여 문서의 추가 또는 삭제가 가능한 본 발명에 따른 역 인덱스 저장 구조를 이용하여 문서를 검색하는 과정은 첨부한 도 7에 도시되어 있는 바와같다.
먼저, 스텝 S301에서 주어진 키워드를 키 값으로 하여 키워드 인덱스를 탐색하여서 주어진 키워드의 포스팅 리스트가 저장되어 있는 대용량 객체를 찾는다.
이후, 스텝 S302에서는 특정 문서 식별자가 주어진 경우와 주어지지 않은 경우로 나누어 문자 식별자가 존재하는 경우 스텝 S303으로 진행하게 되는데, 스텝 S303에서는 특정 문서 식별자가 주어진 경우의 스텝들로서 주어진 특정 문서 내에 주어진 키워드가 포함되는 지를 검색하여야 하므로 서브 인덱스를 탐색하여 주어진 특정 문서의 포스팅을 찾게되고, 스텝 S304에서는 검색된 특정 문서의 포스팅을 읽어 반환한다.
반면에, 특정 문서 식별자가 주어지지 않은 경우에는 스텝 S305로 진행하는데, 스텝 S305에서는 주어진 키워드가 발생한 모든 문서의 포스팅을 반환하여야 하므로 대용량 객체 내에 저장된 포스팅 리스트를 순차적으로 읽어 반환한다.
이상과 같은 과정을 통해 새로운 문서의 추가나 특정 문서의 삭제 및 검색과정을 살펴보았다.
이제, 문서 식별자와 객체 식별자를 이용하여 정보검색과 데이터 베이스 검색을 통합 처리하는 방법을 첨부한 도 8a와 도 8b의 내용을 참조하여 살펴보기로 한다.
고 7a에 도시되어 있는 내용은 본 발명에 따른 역 인덱스 구조중 포스팅 리스트와 데이터 베이스 시스템상의 데이터 베이스 객체 사이에 매칭관계를 나타내는 것으로, 객체 식별자와 문서식별자 및 발생위치정보로 이루어지는 것이 포스팅 리스트이며, 문서식별자와 문서번호와 작성자와 작성날짜 및 본문으로 구성된 것이 데이터 베이스 객체이다.
이때, 상기 데이터 베이스 객체는 어드레스의 개념으로 객체 식별자와 문서 식별자를 사용하게되는데, 포스팅 리스트의 포스팅과 일대일 매칭관계를 이루는 물리적 형태를 갖는다.
상기 도 8a에 도시되어 있는 바와같은 매칭관계를 갖는 포스팅 리스트와 데이터 베이스 객체간의 상호 연결 및 사용관계는 첨부한 도 8b에 예시되어 있다.
도 8b는 두 개의 포스팅과 두 개의 데이터 베이스 객체가 존재한다는 가정아래 도시되어 있는 것으로, 포스팅1(400a)과 포스팅2(400b)는 문서 식별자와 객체 식별자를 함께 저장하고 있고 문서 식별자에 따라 물리적으로 정렬되어 있으며 각각의 객체 식별자는 객체 1(500b)과 객체2(500a)를 가리킨다.
또한, 객체 1(500b)과 객체2(500a)는 문서 식별자를 저장하고 있으며 그 각각의 값은 포스팅1(400a)과 포스팅2(400b)의 문서 식별자 값과 같다. 정보검색 질의를 처리하여 포스팅을 얻게 되면 포스팅에 저장된 객체 식별자를 통해 대응하는 데이터 베이스 객체를 읽어서 데이터 베이스 질의를 처리할 수 있고, 반대로 데이터 베이스 질의를 처리하여 데이터 베이스 객체를 얻게 되면 해당하는 문서 식별자를 키 값으로 하여 서브 인덱스를 탐색함으로써 정보검색 질의를 처리할 수 있으므로 정보검색과 데이터 베이스 검색을 통합 처리할 수 있다.
상술한 바와같이 동작하는 본 발명에 따른 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조를 제공하면 다음과 같은 장점을 얻을수 있다.
첫째, 역 인덱스의 동적 갱신을 효율적으로 지원할 수 있다. 한 키워드의 포스팅 리스트를 하나의 대용량 객체로 간주하고 대용량 객체 관리기법을 사용하여 관리함으로써 문서가 동적으로 추가, 삭제, 수정되어 포스팅 리스트의 길이가 다양하게 변하더라도 최소한의 비용으로 저장 공간을 관리할 수 있다. 즉, 대용량 객체 중간에 포스팅을 삽입, 삭제하더라도 삽입/삭제된 포스팅 전후의 다른 포스팅들은 물리적으로 움직일 필요가 없다.
둘째, 문서의 삭제 성능을 높여준다. 서브 인덱스를 이용하면 삭제된 문서의 식별자가 포함된 포스팅을 포스팅 리스트에서 빨리 찾아 삭제할 수 있으므로 문서 삭제 성능을 높일 수 있다. 특히, 길이가 긴 포스팅 리스트를 가진 키워드는 대부분의 문서에 포함되어 있으므로 긴 포스팅 리스트에서의 포스팅 삭제는 문서 삭제 성능에 중요한 요소가 된다.
셋째, 문서의 수정 성능을 높여준다. 문서의 수정은 기존 문서를 삭제하고 수정된 문서를 추가하는 것이므로 문서의 삭제 성능이 향상되면 수정 성능도 향상된다. 또한, 포스팅 리스트에 수정된 문서의 포스팅을 삽입할 때 문서 식별자 순의 정렬을 유지하기 위하여 기존 문서 식별자 위치에 삽입하여야 한다. 이 경우 서브 인덱스를 통하여 삽입하면 자동적으로 문서 식별자 순의 정렬이 유지되므로 문서 수정 성능을 높일 수 있다.
넷째, 특정 문서에 대한 키워드 검색 성능을 높여준다. 서브 인덱스를 이용하면 특정 키워드에 해당하는 포스팅 리스트에서 특정 문서의 포스팅을 빨리 찾을 수 있으므로 특정 문서 내에 특정 키워드가 포함되었는지의 검색 성능을 높일 수 있다.
다섯째, 데이터 베이스 검색과 정보검색의 통합 처리를 가능하게 한다. 정보검색이 밀결합된 데이터 베이스 관리 시스템에서는 문서의 정형 데이터에 대한 데이터 베이스 검색과 문서의 내용에 대한 정보검색이 통합 처리될 수 있어야 하는데 새로운 역 인덱스 저장 구조에서는 포스팅의 문서 식별자 자리에 문서의 정형 데이터를 저장하고 있는 데이터 베이스 객체의 식별자를 유지함으로써 정보검색과 데이터 베이스 검색을 통합 처리할 수 있다.

Claims (9)

  1. 다수개의 포스팅 리스트가 저장되는 공간을 확보하고 키워드 입력에 따라 대응하는 포스팅 리스트의 저장공간으로 인덱스시키는 역 인덱스 구조에 있어서,
    포스팅 리스트를 대용량 객체에 저장하되, 각각의 포스팅 리스트에 문서 식별자를 인덱스시키는 각각의 서브 인덱스를 일대일 매칭 연결시키는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조.
  2. 제 1 항에 있어서,
    상기 서브 인덱스는 포스팅 리스트와 연결되어 문서 식별자를 인덱스시키는데 있어 오프셋 배열을 이용하여 간접적으로 가리키는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조.
  3. 제 1 항에 있어서,
    상기 서브 인덱스는 상기 대용량 객체에 저장된 각각의 포스팅 리스트에 연결시 일정 길이이상의 포스팅 리스트에 선택적으로 연결가능한 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조.
  4. 제 1 항에 있어서,
    상기 포스팅 리스트는 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조.
  5. 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 새로운 포스팅 삽입 방법에 있어서,
    새로운 포스팅의 오프셋 배열을 위한 공간이 부족하지 않은가를 검색하는 제 1 단계와;
    상기 제 1 단계에서 오프셋 배열을 위한 공간이 부족하다고 판단되면 현재 오프셋 배열의 크기를 두배로 확장하는 제 2 단계와;
    상기 제 1단계에서 오프셋 배열을 위한 공간이 부족하지 않다고 판단되거나 상기 상기 제 2 단계를 수행한 이후의 경우 비어 있는 오프셋 배열에 새로운 포스팅의 문서 식별자의 원소를 하나 할당 받으며 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 큰 가를 판단하는 제 3 단계와;
    상기 제 3 단계를 통해 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 크다고 판단되는 경우 새로운 포스팅을 기존의 포스팅 리스트의 끝에 추가하는 제 4 단계와;
    상기 제 3 단계를 통해 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 크지 않다고 판단되는 경우 서브 인덱스의 탐색을 통해 결정된 바이트 오프셋에 새로운 포스팅을 삽입하는 제 5 단계; 및
    상기 제 4 단계 또는 제 5 단계를 수행한 후 새로운 포스팅과 바이트 오프셋이 바뀌어진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정한 후 추가된 문서의 식별자와 할당 받은 오프셋 배열 원소번호를 서브 인덱스에 삽입하는 제 7 단계를 포함하는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조에서의 새로운 포스팅 삽입 방법.
  6. 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 포스팅 삭제 방법에 있어서,
    서브 인덱스를 탐색하여 삭제된 문서의 식별자가 포함된 포스팅의 저장 위치를 알아내어 해당 포스팅을 삭제하는 제 1 단계와;
    상기 제 1 단계에서 삭제된 포스팅과 저장 위치가 바뀌어 진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정하는 제 2 단계; 및
    상기 제 2 단계에서 삭제된 포스팅의 오프셋 배열 원소를 가리키던 서브 인덱스 엔트리를 삭제하는 제 3 단계를 포함하는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조에서의 포스팅 소거 방법.
  7. 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조상에서의 포스팅 검색 방법에 있어서,
    입력되는 키워드를 기준으로 키워드 인덱스를 탐색하여서 해당 키워드에 대응하는 포스팅 리스트가 저장되어 있는 대용량 객체를 검색하는 제 1 단계와;
    특정 문서 식별자가 존재하는 가를 판단하는 제 2 단계와;
    상기 제 2 단계에서 특정 문서 식별자가 존재하는 경우 주어진 특정 문서 내에 주어진 키워드가 포함되는 지를 검색하기 위해 서브 인덱스를 탐색하여 주어진 특정 문서의 포스팅을 찾게되고 검색된 특정 문서의 포스팅을 읽어 반환하는 제 3 단계; 및
    상기 제 2 단계에서 특정 문서 식별자가 존재하지 않는 경우 대용량 객체 내에 저장된 포스팅 리스트를 순차적으로 읽어 반환하는 제 4 단계를 포함하는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조에서의 포스팅 검색 방법.
  8. 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조와 매칭되는 데이터 베이스 시스템의 구조에 있어서,
    데이터 베이스 시스템에는 문서식별자와 문서번호와 작성자와 작성날짜 및 본문으로 구성된 다수개의 데이터 베이스 객체가 존재하고,
    상기 데이터 베이스 객체는 어드레스의 개념으로 객체 식별자를 사용하여 특정 객체 식별자와 일대일 매칭관계를 이루는 물리적형태를 갖는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조와 매칭되는 데이터 베이스 시스템의 구조.
  9. 객체 식별자와 문서식별자 및 발생위치정보를 저장하는 물리계층으로 이루어지는 다수개의 포스팅 리스트가 대용량 객체에 저장되고, 오프셋 배열을 이용하여 간접적으로 문서 식별자를 인덱스시키는 다수개의 서브 인덱스를 각각의 포스팅 리스트에 일대일 매칭 연결시켜 놓은 서브 인덱스와; 문서식별자와 문서번호와 작성자와 작성날짜 및 본문으로 구성된 다수개의 데이터 베이스 객체가 존재하고, 상기 데이터 베이스 객체는 어드레스의 개념으로 객체 식별자를 사용하여 특정 객체 식별자와 일대일 매칭관계를 이루는 물리적 형태를 갖는 데이터 베이스 시스템을 구비한 데이터 베이스 관리 시스템에서의 운영방법에 있어서:
    새로운 포스팅의 오프셋 배열을 위한 공간이 부족시 현재 오프셋 배열의 크기를 두배로 확장하며, 새로운 포스팅의 문서 식별자가 현재까지의 문서 식별자들 보다 큰 경우 새로운 포스팅을 기존의 포스팅 리스트의 끝에 추가하고, 그 외의 경우 서브 인덱스의 탐색을 통해 결정된 바이트 오프셋에 새로운 포스팅을 삽입한 후, 바뀌어진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값을 수정한 후 추가된 문서의 식별자와 할당 받은 오프셋 배열 원소번호를 서브 인덱스에 삽입하는 새로운 포스팅 삽입 모드와;
    서브 인덱스를 탐색하여 삭제된 문서의 식별자가 포함된 포스팅의 저장 위치를 알아내어 해당 포스팅을 삭제하고, 삭제된 포스팅과 저장 위치가 바뀌어진 모든 포스팅들의 바이트 오프셋을 기록하고 있는 오프셋 배열 원소들의 값과 그에 대응하는 서브 인덱스 엔트리를 삭제하는 포스팅 소거 모드; 및
    입력되는 키워드를 기준으로 키워드 인덱스를 탐색하여서 해당 키워드에 대응하는 포스팅 리스트가 저장되어 있는 대용량 객체를 검색하고, 특정 문서 식별자가 존재하는 가를 판단하여 존재하는 경우 주어진 특정 문서 내에 주어진 키워드가 포함되는 지를 검색하기 위해 서브 인덱스를 탐색하여 주어진 특정 문서의 포스팅을 찾은 후 검색된 특정 문서의 포스팅을 읽어 반환하되, 특정 문서 식별자가 존재하지 않는 경우 대용량 객체 내에 저장된 포스팅 리스트를 순차적으로 읽어 반환하는 포스팅 검색 모드을 포함하는 것을 특징으로 하는 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조에 의한 데이터 베이스 관리 시스템과 정보 검색의 밀결합 방법.
KR1019980005930A 1998-02-25 1998-02-25 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조 KR100285265B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980005930A KR100285265B1 (ko) 1998-02-25 1998-02-25 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조
US09/250,487 US6349308B1 (en) 1998-02-25 1999-02-15 Inverted index storage structure using subindexes and large objects for tight coupling of information retrieval with database management systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980005930A KR100285265B1 (ko) 1998-02-25 1998-02-25 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조

Publications (2)

Publication Number Publication Date
KR19990070838A true KR19990070838A (ko) 1999-09-15
KR100285265B1 KR100285265B1 (ko) 2001-04-02

Family

ID=19533710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980005930A KR100285265B1 (ko) 1998-02-25 1998-02-25 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조

Country Status (2)

Country Link
US (1) US6349308B1 (ko)
KR (1) KR100285265B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040039691A (ko) * 2002-11-04 2004-05-12 엘지전자 주식회사 정보 검색 시스템의 인덱싱 방법
KR100440906B1 (ko) * 2001-02-15 2004-07-19 전석진 문서 색인 시스템 및 그 방법
KR100487846B1 (ko) * 2000-04-04 2005-05-03 티페이지글로벌 주식회사 자동 멀티 포스팅 시스템 및 방법
KR100811838B1 (ko) * 2006-07-31 2008-03-10 (주)닷넷소프트 정보 검색 장치 및 그 제어 방법
KR100834760B1 (ko) * 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
KR101416261B1 (ko) * 2013-05-22 2014-07-09 연세대학교 산학협력단 플래시 ssd의 역 인덱스 업데이트 방법

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
JP3849279B2 (ja) * 1998-01-23 2006-11-22 富士ゼロックス株式会社 インデクス作成方法および検索方法
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US20020002563A1 (en) * 1999-08-23 2002-01-03 Mary M. Bendik Document management systems and methods
US6826562B1 (en) * 1999-11-29 2004-11-30 International Business Machines Corporation Method of simplifying and optimizing scalar subqueries and derived tables that return exactly or at most one tuple
US20070260974A1 (en) * 1999-12-27 2007-11-08 Hauser Carl H System and method for assigning a disposition to a document through information flow knowledge
US6883135B1 (en) 2000-01-28 2005-04-19 Microsoft Corporation Proxy server using a statistical model
KR100414052B1 (ko) * 2000-10-14 2004-01-07 엘지전자 주식회사 주기억장치 데이터베이스의 인덱스 데이터 관리방법
US6772172B2 (en) * 2001-04-27 2004-08-03 Sun Microsystems, Inc. Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database
SG103289A1 (en) * 2001-05-25 2004-04-29 Meng Soon Cheo System for indexing textual and non-textual files
US6826563B1 (en) * 2001-05-29 2004-11-30 Oracle International Corporation Supporting bitmap indexes on primary B+tree like structures
US6859808B1 (en) * 2001-05-31 2005-02-22 Oracle International Corporation Mapping logical row identifiers for primary B+tree-like structures to physical row identifiers
US6708178B1 (en) * 2001-06-04 2004-03-16 Oracle International Corporation Supporting B+tree indexes on primary B+tree structures with large primary keys
US6980976B2 (en) * 2001-08-13 2005-12-27 Oracle International Corp. Combined database index of unstructured and structured columns
US7007015B1 (en) * 2002-05-01 2006-02-28 Microsoft Corporation Prioritized merging for full-text index on relational store
US7702666B2 (en) * 2002-06-06 2010-04-20 Ricoh Company, Ltd. Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part
JP4054989B2 (ja) * 2003-02-27 2008-03-05 ソニー株式会社 記録装置、ファイル管理方法、ファイル管理方法のプログラム、ファイル管理方法のプログラムを記録した記録媒体
US7228301B2 (en) * 2003-06-27 2007-06-05 Microsoft Corporation Method for normalizing document metadata to improve search results using an alias relationship directory service
US7533245B2 (en) 2003-08-01 2009-05-12 Illinois Institute Of Technology Hardware assisted pruned inverted index component
US7499913B2 (en) * 2004-01-26 2009-03-03 International Business Machines Corporation Method for handling anchor text
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US8296304B2 (en) * 2004-01-26 2012-10-23 International Business Machines Corporation Method, system, and program for handling redirects in a search engine
US8799303B2 (en) 2004-02-15 2014-08-05 Google Inc. Establishing an interactive environment for rendered documents
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US20060041484A1 (en) 2004-04-01 2006-02-23 King Martin T Methods and systems for initiating application processes by data capture from rendered documents
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US7584221B2 (en) 2004-03-18 2009-09-01 Microsoft Corporation Field weighting in text searching
KR20050096541A (ko) * 2004-03-31 2005-10-06 삼성에스디아이 주식회사 돌출부를 갖는 네거티브 홀 구조, 그것의 형성 방법 및그것을 포함하는 fed 캐소드 부
US20070300142A1 (en) 2005-04-01 2007-12-27 King Martin T Contextual dynamic advertising based upon captured rendered text
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US20080313172A1 (en) 2004-12-03 2008-12-18 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8793162B2 (en) 2004-04-01 2014-07-29 Google Inc. Adding information or functionality to a rendered document via association with an electronic counterpart
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8621349B2 (en) * 2004-04-01 2013-12-31 Google Inc. Publishing techniques for adding value to a rendered document
US8713418B2 (en) * 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US9460346B2 (en) 2004-04-19 2016-10-04 Google Inc. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US7461064B2 (en) * 2004-09-24 2008-12-02 International Buiness Machines Corporation Method for searching documents for ranges of numeric values
US7606793B2 (en) * 2004-09-27 2009-10-20 Microsoft Corporation System and method for scoping searches using index keys
US7739277B2 (en) 2004-09-30 2010-06-15 Microsoft Corporation System and method for incorporating anchor text into ranking search results
US7827181B2 (en) * 2004-09-30 2010-11-02 Microsoft Corporation Click distance determination
US7761448B2 (en) 2004-09-30 2010-07-20 Microsoft Corporation System and method for ranking search results using click distance
US20110075228A1 (en) * 2004-12-03 2011-03-31 King Martin T Scanner having connected and unconnected operational behaviors
US20110029504A1 (en) * 2004-12-03 2011-02-03 King Martin T Searching and accessing documents on private networks for use with captures from rendered documents
US7716198B2 (en) 2004-12-21 2010-05-11 Microsoft Corporation Ranking search results using feature extraction
US7792833B2 (en) 2005-03-03 2010-09-07 Microsoft Corporation Ranking search results using language types
US7765214B2 (en) * 2005-05-10 2010-07-27 International Business Machines Corporation Enhancing query performance of search engines using lexical affinities
US8417693B2 (en) * 2005-07-14 2013-04-09 International Business Machines Corporation Enforcing native access control to indexed documents
US7599917B2 (en) * 2005-08-15 2009-10-06 Microsoft Corporation Ranking search results using biased click distance
KR100725664B1 (ko) * 2005-08-26 2007-06-08 한국과학기술원 2단계 n-gram 역색인 구조 및 그 구성 방법과 질의처리 방법 및 그 색인 도출 방법
US8600997B2 (en) * 2005-09-30 2013-12-03 International Business Machines Corporation Method and framework to support indexing and searching taxonomies in large scale full text indexes
CN100458779C (zh) * 2005-11-29 2009-02-04 国际商业机器公司 扩展索引的方法
US20110096174A1 (en) * 2006-02-28 2011-04-28 King Martin T Accessing resources based on capturing information from a rendered document
US20080028302A1 (en) * 2006-07-31 2008-01-31 Steffen Meschkat Method and apparatus for incrementally updating a web page
US7765215B2 (en) * 2006-08-22 2010-07-27 International Business Machines Corporation System and method for providing a trustworthy inverted index to enable searching of records
US20080072134A1 (en) * 2006-09-19 2008-03-20 Sreeram Viswanath Balakrishnan Annotating token sequences within documents
EP1903457B1 (en) 2006-09-19 2012-05-30 Exalead Computer-implemented method, computer program product and system for creating an index of a subset of data
US20080082554A1 (en) * 2006-10-03 2008-04-03 Paul Pedersen Systems and methods for providing a dynamic document index
US8635194B2 (en) * 2006-10-19 2014-01-21 Oracle International Corporation System and method for data compression
US9465823B2 (en) * 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US7920700B2 (en) * 2006-10-19 2011-04-05 Oracle International Corporation System and method for data encryption
US8250075B2 (en) * 2006-12-22 2012-08-21 Palo Alto Research Center Incorporated System and method for generation of computer index files
US7720837B2 (en) * 2007-03-15 2010-05-18 International Business Machines Corporation System and method for multi-dimensional aggregation over large text corpora
US7822752B2 (en) * 2007-05-18 2010-10-26 Microsoft Corporation Efficient retrieval algorithm by query term discrimination
US7917516B2 (en) 2007-06-08 2011-03-29 Apple Inc. Updating an inverted index
US7984041B1 (en) * 2007-07-09 2011-07-19 Oracle America, Inc. Domain specific local search
US9348912B2 (en) * 2007-10-18 2016-05-24 Microsoft Technology Licensing, Llc Document length as a static relevance feature for ranking search results
US7840569B2 (en) * 2007-10-18 2010-11-23 Microsoft Corporation Enterprise relevancy ranking using a neural network
US20090106221A1 (en) * 2007-10-18 2009-04-23 Microsoft Corporation Ranking and Providing Search Results Based In Part On A Number Of Click-Through Features
US20090112843A1 (en) * 2007-10-29 2009-04-30 International Business Machines Corporation System and method for providing differentiated service levels for search index
NO327653B1 (no) * 2007-12-20 2009-09-07 Fast Search & Transfer As Fremgangsmate for dynamisk oppdatering av en indeks og en sokemotor som implementerer samme
US20090193406A1 (en) * 2008-01-29 2009-07-30 James Charles Williams Bulk Search Index Updates
US8812493B2 (en) * 2008-04-11 2014-08-19 Microsoft Corporation Search results ranking using editing distance and document information
US8082258B2 (en) * 2009-02-10 2011-12-20 Microsoft Corporation Updating an inverted index in a real time fashion
DE202010018601U1 (de) 2009-02-18 2018-04-30 Google LLC (n.d.Ges.d. Staates Delaware) Automatisches Erfassen von Informationen, wie etwa Erfassen von Informationen unter Verwendung einer dokumentenerkennenden Vorrichtung
US8447066B2 (en) * 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US20110040762A1 (en) * 2009-08-12 2011-02-17 Globalspec, Inc. Segmenting postings list reader
CN102023989B (zh) * 2009-09-23 2012-10-10 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US9507827B1 (en) * 2010-03-25 2016-11-29 Excalibur Ip, Llc Encoding and accessing position data
US8738635B2 (en) 2010-06-01 2014-05-27 Microsoft Corporation Detection of junk in search result ranking
FR2965952B1 (fr) * 2010-10-06 2013-06-21 Commissariat Energie Atomique Procede de mise a jour d'un index inverse et serveur mettant en oeuvre ce procede
US8996985B1 (en) 2011-03-16 2015-03-31 Google Inc. Online document processing service for displaying comments
US20130013616A1 (en) * 2011-07-08 2013-01-10 Jochen Lothar Leidner Systems and Methods for Natural Language Searching of Structured Data
US10430388B1 (en) 2011-10-17 2019-10-01 Google Llc Systems and methods for incremental loading of collaboratively generated presentations
US8471871B1 (en) 2011-10-17 2013-06-25 Google Inc. Authoritative text size measuring
US8266245B1 (en) 2011-10-17 2012-09-11 Google Inc. Systems and methods for incremental loading of collaboratively generated presentations
US8434002B1 (en) * 2011-10-17 2013-04-30 Google Inc. Systems and methods for collaborative editing of elements in a presentation document
US20150199308A1 (en) 2011-10-17 2015-07-16 Google Inc. Systems and methods for controlling the display of online documents
US8812946B1 (en) 2011-10-17 2014-08-19 Google Inc. Systems and methods for rendering documents
US20130151534A1 (en) * 2011-12-08 2013-06-13 Digitalsmiths, Inc. Multimedia metadata analysis using inverted index with temporal and segment identifying payloads
US9495462B2 (en) 2012-01-27 2016-11-15 Microsoft Technology Licensing, Llc Re-ranking search results
US9747363B1 (en) * 2012-03-01 2017-08-29 Attivio, Inc. Efficient storage and retrieval of sparse arrays of identifier-value pairs
US9367522B2 (en) 2012-04-13 2016-06-14 Google Inc. Time-based presentation editing
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US10474650B1 (en) * 2013-05-24 2019-11-12 Google Llc In-place updates for inverted indices
US10073874B1 (en) 2013-05-28 2018-09-11 Google Llc Updating inverted indices
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US11249968B2 (en) * 2016-05-09 2022-02-15 Sap Se Large object containers with size criteria for storing mid-sized large objects
US11138247B2 (en) * 2017-04-07 2021-10-05 Druva, Inc. Systems and methods for a full text search engine implemented using object storage techniques
EP4270209A3 (en) 2017-10-26 2023-11-22 Druva Inc. Deduplicated merged indexed object storage file system
US11449484B2 (en) * 2018-06-25 2022-09-20 Ebay Inc. Data indexing and searching using permutation indexes
US11947512B2 (en) 2022-02-22 2024-04-02 Microsoft Technology Licensing, Llc Feedback-based inverted index compression
CN116737664B (zh) * 2023-08-14 2023-11-14 中国科学院软件研究所 一种面向对象的嵌入式数据库高效索引组织方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
JPH02130647A (ja) * 1988-11-11 1990-05-18 Toshiba Corp 索引木構造の更新方式
US5263155A (en) * 1991-02-21 1993-11-16 Texas Instruments Incorporated System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
US5685003A (en) * 1992-12-23 1997-11-04 Microsoft Corporation Method and system for automatically indexing data in a document using a fresh index table
JP3003915B2 (ja) * 1994-12-26 2000-01-31 シャープ株式会社 単語辞書検索装置
US5758361A (en) * 1996-03-20 1998-05-26 Sun Microsystems, Inc. Document editor for linear and space efficient representation of hierarchical documents
US5806065A (en) * 1996-05-06 1998-09-08 Microsoft Corporation Data system with distributed tree indexes and method for maintaining the indexes
US5915249A (en) * 1996-06-14 1999-06-22 Excite, Inc. System and method for accelerated query evaluation of very large full-text databases
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US5852822A (en) * 1996-12-09 1998-12-22 Oracle Corporation Index-only tables with nested group keys
US6167397A (en) * 1997-09-23 2000-12-26 At&T Corporation Method of clustering electronic documents in response to a search query
US6061690A (en) * 1997-10-31 2000-05-09 Oracle Corporation Apparatus and method for storage of object collections in a database system
US6061678A (en) * 1997-10-31 2000-05-09 Oracle Corporation Approach for managing access to large objects in database systems using large object indexes
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6119156A (en) * 1998-04-27 2000-09-12 Xerox Corporation Locking mechanism for network-managed agents in a digital printing system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100487846B1 (ko) * 2000-04-04 2005-05-03 티페이지글로벌 주식회사 자동 멀티 포스팅 시스템 및 방법
KR100440906B1 (ko) * 2001-02-15 2004-07-19 전석진 문서 색인 시스템 및 그 방법
KR20040039691A (ko) * 2002-11-04 2004-05-12 엘지전자 주식회사 정보 검색 시스템의 인덱싱 방법
KR100811838B1 (ko) * 2006-07-31 2008-03-10 (주)닷넷소프트 정보 검색 장치 및 그 제어 방법
KR100834760B1 (ko) * 2006-11-23 2008-06-05 삼성전자주식회사 최적화된 인덱스 검색 방법 및 장치
KR101416261B1 (ko) * 2013-05-22 2014-07-09 연세대학교 산학협력단 플래시 ssd의 역 인덱스 업데이트 방법

Also Published As

Publication number Publication date
KR100285265B1 (ko) 2001-04-02
US6349308B1 (en) 2002-02-19

Similar Documents

Publication Publication Date Title
KR100285265B1 (ko) 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조
US4611272A (en) Key-accessed file organization
US5590320A (en) Computer file directory system
US6330567B1 (en) Searching system for searching files stored in a hard disk of a personal computer
US6654868B2 (en) Information storage and retrieval system
KR100284778B1 (ko) 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법
US7464100B2 (en) Reorganization-free mapping of objects in databases using a mapping chain
US20140324875A1 (en) Index for fast batch updates of large data tables
Otoo et al. A mapping function for the directory of a multidimensional extendible hashing
CN116186133A (zh) 一种融合正排与倒排索引的电子文档管理方法
CN113779286B (zh) 管理图数据的方法及装置
JP3518933B2 (ja) 構造化文書検索方法
CN103246718B (zh) 文件访问方法、装置和设备
CN110413724B (zh) 一种数据检索方法和装置
CN116226425A (zh) 一种图数据的存储方法、读取方法和系统
US20110231404A1 (en) File storage and retrieval method
KR20040039691A (ko) 정보 검색 시스템의 인덱싱 방법
CN1235169C (zh) 一种嵌入式系统的数据存放及其查找方法
US6076089A (en) Computer system for retrieval of information
Afshani et al. Cross-referenced dictionaries and the limits of write optimization
CN104765656A (zh) 一种冷数据的备份方法及装置
EP0117906B1 (en) Key-accessed file organization
CN115809248B (zh) 数据查询方法和装置以及存储介质
KR20190089420A (ko) 서브 인덱스 저장 방식의 데이터 구축 및 관리 시스템
KR20010002567A (ko) 정보검색 시스템의 하부저장구조 관리장치 및 그 정보 저장/검색 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130102

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20161227

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 18

EXPY Expiration of term