1 |
1
문자열 색인 장치에서, 텍스트로부터 패트트리를 생성하는 단계;
상기 문자열 색인 장치에서, 상기 패트트리를 순회하면서 상기 패트트리에 대응되는 글로벌 마스크를 생성하는 단계;
상기 문자열 색인 장치에서, 상기 패트트리를 순회하면서 상기 패트트리의 각 노드에 할당된 문자열에 대응되는 마스크, 검색 키 및 문자열 위치 리스트 포인터를 생성하는 단계; 및
상기 문자열 색인 장치에서, 상기 생성된 마스크, 검색 키 및 문자열 위치 리스트 포인터를 이용하여 배열 또는 균형 다원 탐색 트리를 생성하는 단계;
를 포함하는 문자열 색인 방법
|
2 |
2
문자열 색인 장치에서, 텍스트로부터 패트트리를 생성하는 단계;
상기 문자열 색인 장치에서, 상기 패트트리를 순회하면서 상기 패트트리에 대응되는 글로벌 마스크를 생성하고, 상기 패트트리의 각 노드에 할당된 문자열의 분기 위치 정보를 저장하는 단계;
상기 문자열 색인 장치에서, 상기 저장된 분기 위치 정보를 이용하여 상기 패트트리의 각 노드에 할당된 문자열에 대응되는 마스크, 검색 키 및 문자열 위치 리스트 포인터를 생성하는 단계; 및
상기 문자열 색인 장치에서, 상기 생성된 마스크, 검색 키 및 문자열 위치 리스트 포인터를 이용하여 배열 또는 균형 다원 탐색 트리를 생성하는 단계;
를 포함하는 문자열 색인 방법
|
3 |
3
제1항 또는 제2항에 있어서,
상기 글로벌 마스크는 상기 패트트리에서 분기가 일어나는 비트의 위치를 나타내는 문자열인, 문자열 색인 방법
|
4 |
4
제3항에 있어서,
상기 글로벌 마스크의 길이는 상기 패트트리에서 마지막으로 분기가 일어나는 비트의 위치에 따라 결정되며, 상기 글로벌 마스크의 각 비트는 상기 패트트리에서 분기가 일어나는 위치에 대응되는 비트의 경우 1로, 대응되지 않는 비트의 경우 0으로 설정되는, 문자열 색인 방법
|
5 |
5
제1항에 있어서,
상기 마스크, 검색 키 및 문자열 위치 리스트 포인터 생성 단계는, 상기 패트트리를 이진 트리의 프리오더 순회 방식으로 순회하면서 상기 패트트리의 각 노드에 할당된 문자열에 대응되는 마스크, 검색 키 및 문자열 위치 리스트 포인터를 생성하는, 문자열 색인 방법
|
6 |
6
제2항 또는 제5항에 있어서,
상기 마스크의 길이는 상기 글로벌 마스크에서 1로 설정된 비트의 수와 동일하며, 상기 마스크 내의 각 비트는 상기 글로벌 마스크에서 1로 설정된 비트들과 일대일 대응되는, 문자열 색인 방법
|
7 |
7
제6항에 있어서,
상기 마스크 내의 각 비트는 상기 마스크와 대응되는 문자열을 상기 패트트리에서 탐색하는 데 필요한 비트의 경우 1로, 필요하지 않은 비트의 경우 0으로 설정되는, 문자열 색인 방법
|
8 |
8
제7항에 있어서,
상기 검색 키는 상기 마스크와 대응되는 문자열에서 상기 마스크의 각 비트에 대응되는 위치의 값인, 문자열 색인 방법
|
9 |
9
제1항 또는 제2항에 있어서,
상기 배열은 상기 마스크, 검색 키 및 문자열 위치 리스트 포인터 생성 단계에서 생성된 검색 키, 마스크 및 문자열 위치 리스트 포인터가 상기 패트트리 순회 순서에 따라 정렬되는, 문자열 색인 방법
|
10 |
10
제1항 또는 제2항에 있어서,
상기 균형 다원 탐색 트리는,
상기 마스크, 검색 키 및 문자열 위치 리스트 포인터 생성 단계에서 생성된 검색 키, 마스크 및 문자열 위치 리스트 포인터를 B+ 트리에 삽입함으로써 생성되며, 상기 B+ 트리의 리프 노드에는 상기 검색 키, 마스크 및 문자열 위치 리스트 포인터가 저장되고, 내부 노드에는 상기 검색 키, 마스크 및 자식 노드 포인터가 저장되는, 문자열 색인 방법
|
11 |
11
제1항 또는 제2항에 있어서,
상기 균형 다원 탐색 트리는,
상기 생성된 마스크, 검색 키 및 문자열 위치 리스트 포인터를 이용하여 배열을 생성하고, 생성된 상기 배열을 페이지 단위로 순차적으로 B+ 트리에 삽입함으로써 생성되는, 문자열 색인 방법
|
12 |
12
제1항 또는 제2항에 있어서,
상기 배열 또는 균형 다원 탐색 트리를 생성하는 단계의 수행 후,
상기 문자열 색인 장치에서, 상기 배열 또는 상기 균형 다원 탐색 트리 및 상기 글로벌 마스크를 이용하여 질의 문자열이 상기 패트트리에 존재하는지의 여부를 검색하는 단계;
를 더 포함하는, 문자열 색인 방법
|
13 |
13
제12항에 있어서,
상기 배열을 이용한 검색 단계는,
상기 배열의 첫 위치 및 끝 위치 사이에 검색 키가 존재하는지의 여부를 판단하는 단계;
상기 판단 결과 상기 배열의 첫 위치 및 끝 위치 사이에 검색 키가 존재하는 경우, 상기 배열의 중간 위치를 계산하는 단계;
상기 배열의 중간 위치에 해당하는 엔트리의 마스크 값을 이용하여 질의 문자열로부터 질의 키를 생성하는 단계;
상기 질의 키 및 상기 중간 위치에 해당하는 엔트리의 검색 키 값의 크기를 비교하는 단계;
상기 비교 결과, 상기 질의 키가 상기 중간 위치의 검색 키보다 큰 경우 상기 중간 위치의 다음 엔트리에 해당하는 위치를 상기 배열의 첫 위치로 설정하고, 상기 질의 키가 상기 중간 위치의 검색 키보다 작은 경우 상기 중간 위치의 전 엔트리에 해당하는 위치를 상기 배열의 끝 위치로 설정하는 단계; 및
상기 설정된 첫 위치 또는 끝 위치에 따라 상기 배열의 중간 위치를 재계산하고, 상기 배열의 첫 위치 및 끝 위치 사이에 검색 키가 존재하는지의 여부를 판단하는 단계 이하를 재 수행하는 단계;
를 더 포함하는 문자열 색인 방법
|
14 |
14
제13항에 있어서,
상기 질의 키 생성 단계는,
상기 중간 위치에 해당하는 엔트리의 마스크의 각 비트값 중 1로 설정된 비트의 위치를 상기 글로벌 마스크에서 검색하고, 검색된 상기 위치에 해당하는 비트를 상기 질의 문자열에서 추출함으로써 생성되는, 문자열 색인 방법
|
15 |
15
제13항에 있어서,
상기 비교 결과, 상기 질의 키가 상기 중간 위치의 검색 키와 동일한 경우, 상기 질의 키에 대응되는 상기 질의 문자열이 상기 패트트리에 존재하는 것으로 판단하고 상기 검색 단계를 종료하는, 문자열 색인 방법
|
16 |
16
제13항에 있어서,
상기 판단 결과 상기 배열의 첫 위치 및 끝 위치 사이에 검색 키가 존재하지 않는 경우, 검색 실패로 판단하고 상기 검색을 종료하는, 문자열 색인 방법
|
17 |
17
제12항에 있어서,
상기 균형 다원 탐색 트리를 이용한 검색 단계는,
상기 균형 다원 탐색 트리의 루트 노드에 할당된 마스크에 따라 질의 문자열로부터 질의 키를 생성하고, 상기 질의 키와 상기 루트 노드의 검색 키의 크기를 비교하여 상기 루트 노드의 자식 노드 중 하나를 선택하는 단계;
선택된 상기 자식 노드에 할당된 마스크에 따라 질의 문자열로부터 질의 키를 생성하고, 상기 질의 키와 상기 자식 노드의 검색 키의 크기를 비교하여 상기 자식 노드의 자식 노드 중 하나를 선택하는 단계; 및
상기 균형 다원 탐색 트리의 리프 노드에 도달할 때까지 상기 자식 노드의 자식 노드 중 하나를 선택하는 단계를 반복 수행하는 단계;
를 포함하는, 문자열 색인 방법
|
18 |
18
제17항에 있어서,
상기 균형 다원 탐색 트리를 이용한 검색 단계에서 상기 균형 다원 탐색 트리의 리프 노드에 도달한 경우, 도달한 상기 리프 노드에 할당된 마스크로부터 생성된 질의 키와 동일한 검색 키가 상기 리프 노드에 존재하는 경우 검색 성공으로 판단하고, 존재하지 않는 경우 검색 실패로 판단하는, 문자열 색인 방법
|
19 |
19
제1항 또는 제2항 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
|
20 |
20
텍스트로부터 패트트리를 생성하는 패트트리 생성부;
상기 패트트리를 순회하면서 상기 패트트리에 대응되는 글로벌 마스크를 생성하는 글로벌 마스크 생성부;
상기 패트트리를 순회하면서 상기 패트트리의 각 노드에 할당된 문자열에 대응되는 마스크, 검색 키 및 문자열 위치 리스트 포인터를 생성하는 마스크 및 검색 키 생성부;
상기 생성된 마스크, 검색 키 및 문자열 위치 리스트 포인터를 이용하여 배열 또는 균형 다원 탐색 트리를 생성하는 배열 및 균형 다원 탐색 트리 생성부; 및
상기 배열 또는 상기 균형 다원 탐색 트리 및 상기 글로벌 마스크를 이용하여 질의 문자열이 상기 패트트리에 존재하는지의 여부를 검색하는 검색부;
를 포함하는 문자열 색인 장치
|
21 |
21
텍스트로부터 패트트리를 생성하는 패트트리 생성부;
상기 패트트리를 순회하면서 상기 패트트리에 대응되는 글로벌 마스크를 생성하고, 상기 패트트리의 각 노드에 할당된 문자열의 분기 위치 정보를 저장하는 글로벌 마스크 생성부;
상기 글로벌 마스크 생성부에 의하여 저장된 상기 분기 위치 정보를 이용하여 상기 패트트리의 각 노드에 할당된 문자열에 대응되는 마스크, 검색 키 및 문자열 위치 리스트 포인터를 생성하는 마스크 및 검색 키 생성부;
상기 생성된 마스크, 검색 키 및 문자열 위치 리스트 포인터를 이용하여 배열 또는 균형 다원 탐색 트리를 생성하는 배열 및 균형 다원 탐색 트리 생성부; 및
상기 배열 또는 상기 균형 다원 탐색 트리 및 상기 글로벌 마스크를 이용하여 질의 문자열이 상기 패트트리에 존재하는지의 여부를 검색하는 검색부;
를 포함하는 문자열 색인 장치
|