[go: up one dir, main page]

KR20100022565A - Method for searching an url using hash tree - Google Patents

Method for searching an url using hash tree Download PDF

Info

Publication number
KR20100022565A
KR20100022565A KR1020080081135A KR20080081135A KR20100022565A KR 20100022565 A KR20100022565 A KR 20100022565A KR 1020080081135 A KR1020080081135 A KR 1020080081135A KR 20080081135 A KR20080081135 A KR 20080081135A KR 20100022565 A KR20100022565 A KR 20100022565A
Authority
KR
South Korea
Prior art keywords
url
hash
list
host name
search
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020080081135A
Other languages
Korean (ko)
Other versions
KR100999408B1 (en
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 KR20080081135A priority Critical patent/KR100999408B1/en
Publication of KR20100022565A publication Critical patent/KR20100022565A/en
Application granted granted Critical
Publication of KR100999408B1 publication Critical patent/KR100999408B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/322Trees
    • 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/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

Landscapes

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

Abstract

본 발명은 URL 목록에서 특정 URL을 검색하는 종래의 방법에서 검색 속도를 개선하기 위하여 해시트리를 이용한 URL 저장과 검색방법에 관한 것이다. URL 해시트리의 모든 노드(node)는 해시 테이블로 이루어지는데 내부 노드(internal node)의 해시 테이블은 하위 해시 테이블의 메모리 포인터를 저장하고 종단 노드(leaf Node)의 해시 테이블은 호스트이름에 관한 정보와 경로에 관한 정보를 저장하는 리스트의 메모리 포인터를 저장한다. 즉, URL 해시트리는 해시 테이블과 리스트로 구성된다. 본 발명의 목적은 URL 목록을 저장하고 있는 URL 해시트리를 이용하여 검색대상 URL을 빠르고 효율적으로 검색하는 것이다.The present invention relates to a method of storing and retrieving a URL using a hashtree in order to improve a search speed in a conventional method of searching a specific URL in a URL list. Every node in the URL hashtree consists of a hash table. The hash table of the internal node stores the memory pointer of the underlying hash table, and the hash table of the leaf node contains information about the hostname. Stores a memory pointer of a list that stores information about the route. In other words, the URL hashtree consists of a hash table and a list. An object of the present invention is to quickly and efficiently search for a search target URL using a URL hatchet that stores a list of URLs.

Description

해시트리를 이용한 URL 검색방법{Method for searching an URL using hash tree}Method for searching an usingRL using hash tree}

본 발명은 웹사이트 콘텐츠 필터링 시스템에 관한 것으로, 보다 상세하게는 URL 목록에 대한 해시트리를 생성하고 이를 활용하여 사용자에 의해 입력된 URL이 미리 정의된 URL 목록에 포함되는지를 효과적으로 검색(필터링)하는 방법에 관한 것이다.The present invention relates to a website content filtering system, and more particularly, to generate a hashlist for a URL list and to utilize the same to effectively search (filter) whether a URL input by a user is included in a predefined URL list. It is about a method.

최근 웹과 인터넷이 대중화 되면서 그 역기능이 문제가 되어 웹사이트 필터링 시스템의 필요성이 대두되었고, 웹사이트 콘텐츠를 효율적으로 필터링하기 위한 여러 방식들이 사용되고 있다. 또한 다양한 응용 프로그램들을 웹으로 서비스하려는 추세에 입각하여 웹 서비스 객체들이 URL(Uniform Resource Locator)로 표현되므로, 사용자의 요청 URL과 미리 정의된 URL 목록을 비교하여 웹사이트 콘텐츠를 필터링하는 방법(URL 목록 기반 필터링 방법)이 많이 사용되고 있다.Recently, with the popularization of the web and the Internet, its dysfunction has become a problem, and the necessity of a website filtering system has emerged, and various methods for efficiently filtering website contents have been used. In addition, web service objects are represented as uniform resource locators (URLs) in accordance with the trend of serving various applications on the web. Thus, a method of filtering website content by comparing a user's request URL with a predefined list of URLs (URL list) Based filtering method) is widely used.

한편 미리 정의된 URL 목록의 크기는 빠르게 증가하고 있다. 이러한 URL 목 록의 크기 증가는 검색속도를 현저히 떨어뜨림으로써 응답시간을 증가시키고 이에 따라 네트워크 서비스 품질이 감소되는 현상을 유발하고 있다.Meanwhile, the size of predefined URL lists is growing rapidly. This increase in the size of the URL list causes a significant decrease in the search speed, which leads to an increase in response time and a decrease in network service quality.

URL 검색방법에 있어서 URL 간의 포함관계를 정의하는 것이 중요하다. 본 발명에서는 URL을 호스트이름(hostname)과 경로(path)로 구분하고 경로는 다시 디렉토리(directory)와 파일(file)로 구성된다고 정의한다. 이때, URL A와 B의 호스트이름이 같고 A의 경로가 파일의 계층구조상 B를 포함할 때 'URL A는 URL B를 포함한다.'라고 정의한다. 예를 들어 URL A는 "www.hostname/directory1/" 이고 URL B는 "www.hostname/directory1/file2" 이라면 URL A는 URL B를 포함한다.It is important to define the inclusion relationship between URLs in the URL retrieval method. In the present invention, the URL is divided into a hostname and a path, and the path is again defined as a directory and a file. In this case, when the host names of URLs A and B are the same and the path of A includes B in the file hierarchy, 'URL A includes URL B'. For example, if URL A is "www.hostname / directory1 /" and URL B is "www.hostname / directory1 / file2", then URL A contains URL B.

이러한 포함관계를 검색할 수 있는 종래의 방법으로 단일 해시 테이블(hash table) 방식이 알려져 있다. 단일 해시 테이블 방식에 의하면, URL 목록을 정의하고 URL 목록에 존재하는 URL의 개수에 따라 적당한 크기의 해시 테이블을 생성한 후 해시함수를 통해 각 URL들의 해시 테이블 위치를 결정하여 URL들을 저장한다. 이러한 단일 해시 테이블 방식은 다음과 같은 두 가지 속성에 따라 검색시간이 길어지는 문제점이 있다.A single hash table method is known as a conventional method of retrieving such an inclusion relationship. According to the single hash table method, a list of URLs is defined, a hash table having a proper size is created according to the number of URLs present in the URL list, and the hash table positions of the respective URLs are determined through a hash function to store the URLs. This single hash table method has a problem in that the search time is long depending on the following two attributes.

단일 해시 테이블 방식에서는 URL의 포함관계를 찾기 위하여 검색대상 URL의 경로를 분리하여 호스트이름에 하나씩 덧붙여가며 비교한다. 즉, 분리한 경로를 순차적으로 하나씩 호스트이름과 연결하고 해시 테이블을 참조하여 비교한다. 예를 들어 도1과 같은 URL 목록과 단일 해시 테이블에 대하여, 검색대상 URL이 "www.hostname.com/dir2/a.html"이라 가정하자. 이 방식에 의하면, 먼저 "www.hostname.com/"을 해시함수를 통하여 인덱스를 구하고 비교한다. 그러나 해시 테이블에서 해당 URL을 찾지 못하기 때문에 "dir2/"를 덧붙인 "www.hostname.com/dir2/"를 해시 테이블에서 검색하고 성공한다. 만일 여기서도 검색을 실패한다면 "a.html"도 덧붙여 계속 검색한다. 따라서 검색에 실패하거나 검색대상 URL의 경로가 많은 개수의 디렉토리로 구성되어 있다면 각 디렉토리를 호스트 이름에 덧붙여 비교해야하기 때문에 단일 해시 테이블 방식의 검색 시간이 길어지는 문제가 있다. 즉, 종래기술에 의한 URL 검색방법에 의하면, 검색대상 URL을 검색하기 위해서는 디렉토리들과 파일을 하나씩 호스트이름에 연결하고 해시함수를 이용하여 검색하는 단계를 반복하여 모든 디렉토리들과 파일을 덧붙여서 검색해야만 한다. 따라서 검색대상 URL을 검색하지 못한다면 디렉토리의 개수만큼 비교횟수가 증가할 수밖에 없다. 일반적으로 URL 검색응용에서 검색에 실패하는 비율이 성공하는 비율보다 훨씬 크기 때문에 종래기술은 효율적이지 못한 검색방법이다. In the single hash table method, the path of the search target URL is separated and added to the host name one by one in order to find the inclusion relationship of the URL. That is, connect the separated paths one by one with the host name and compare them with reference to the hash table. For example, for the URL list and single hash table as shown in Fig. 1, assume that the search target URL is "www.hostname.com/dir2/a.html". According to this method, "www.hostname.com/" is first obtained through an hash function and compared with an index. However, since the URL is not found in the hash table, it searches for "www.hostname.com/dir2/" with "dir2 /" in the hash table and succeeds. If the search fails again, the search continues with "a.html" appended. Therefore, if the search fails or the path of the search target URL is composed of a large number of directories, the search time of the single hash table method is long because each directory needs to be compared with the host name. That is, according to the conventional URL search method, in order to search the search target URL, the directories and files must be connected to the host name one by one and the search using the hash function is repeated, and all directories and files must be added. do. Therefore, if the search target URL cannot be searched, the number of comparisons is inevitably increased by the number of directories. In general, the prior art is an inefficient search method because the rate of failure to search in a URL search application is much larger than the rate of success.

두 번째는 인덱스의 충돌 문제이다. 해시기법에 의하면 인덱스의 충돌 문제가 발생할 가능성이 있다. 해시 테이블을 구성할 때 해시 인덱스의 충돌이 발생하면 단일 해시 테이블은 다음 인덱스(slot) 위치에 저장하는 open linear addressing을 사용한다. 따라서 검색대상 URL을 해시 테이블에서 검색할 때는 해당 인덱스뿐만 아니라 해시 테이블에 저장된 URL이 NULL이 될 때까지 다음 인덱스와 계속 비교하여 찾아야 하므로 해시 테이블이 충분히 크지 않거나 해시 값의 충돌이 많이 일어날 경우 검색 시간이 길어지는 문제가 있다. 충돌을 줄이기 위해서 인덱스를 크게 한다면 해시 테이블의 크기를 키워야 하고 사용하지 않는 메모리 공간이 늘어난다. 이 문제는 단일 해시 테이블 구조에서는 저장하는 엔트리 수와 상관없이 인덱스의 크기에 따라서 해시 테이블의 메모리 사용량이 결정되기 때문이다.The second problem is index conflict. According to the hash method, there is a possibility of index conflict. When constructing a hash table, if a hash index conflict occurs, a single hash table uses open linear addressing, which stores it at the next slot location. Therefore, when searching for a target URL in a hash table, it must be found by comparing it with the next index until not only the index but also the URL stored in the hash table, so the search time when the hash table is not large enough or there are many collisions of hash values There is a problem with this lengthening. If you make the index bigger to reduce the conflict, you need to increase the size of the hash table and free up unused memory space. This problem occurs because the memory size of the hash table is determined by the size of the index regardless of the number of entries stored in a single hash table structure.

본 발명은 전술한 종래기술의 단점을 해결하기 위한 것으로, 사전에 정의된 URL 목록으로부터 해시트리를 생성하고, 이를 이용하여 검색대상 URL을 빠르고 효과적으로 검색할 수 있는 방법을 제공하는 것을 과제로 한다.An object of the present invention is to solve the above-mentioned disadvantages of the prior art, and to provide a method for generating a hashtree from a predefined URL list and quickly and effectively searching for a search target URL using the same.

해시 테이블을 이용한 검색방법에 있어서 해시값의 범위가 클수록 충돌을 회피할 가능성이 높아져 검색 시간은 짧아지지만 메모리 공간이 제한되므로 해시값의 범위를 증가시킬 수 없다. 또한 이상적인 해시함수가 발생시킨 해시값은 고루 분포하지만 실제 해시함수가 생성하는 해시값은 집중되기 마련이고, 해시 테이블 전체 엔트리의 수가 삽입된 엔트리보다 큰 경우에도 충돌은 여전히 발생할 수 있다. 본 발명은 해시값의 범위는 키우되 사용하지 않는 엔트리의 메모리 사용을 줄이는 방법을 고안한다. 크기가 큰 단일 해시 테이블 구조가 아닌 비교적 작은 크기의 해시 테이블을 계층적으로 사용하고 엔트리가 삽입될 때마다 필요한 해시 테이블만을 할당함으로써 메모리를 효과적으로 사용할 수 있다. 예를 들어 24비트의 해시값이 단일 해시 테이블로 구성된다면 224개의 모든 엔트리가 처음부터 할당되어야 한다. 그 렇지만 3단계 해시트리로 구성하고 24비트의 해시값을 8비트 해시값 세 개로 분할하면, 단일 해시 테이블과 마찬가지로 224개의 엔트리를 허용하면서도 할당되는 메모리 공간의 크기를 감소시킬 수 있기 때문에 결과적으로 동일 크기의 메모리를 사용하더라도 해시값의 범위를 키울 수 있다.In the search method using a hash table, the larger the range of hash values, the higher the probability of avoiding collisions, the shorter the search time, but the limited memory space cannot increase the range of hash values. In addition, although the hash value generated by the ideal hash function is distributed evenly, the hash value generated by the actual hash function is concentrated, and even if the total number of entries in the hash table is larger than the inserted entry, collision may still occur. The present invention devises a method of reducing the memory usage of entries that have a wide range of hash values but do not use them. You can effectively use memory by hierarchically using a relatively small hash table rather than a single large hash table structure and allocating only the hash tables that are needed each time an entry is inserted. For example, if a 24-bit hash consists of a single hash table, all 24 entries must be allocated from the beginning. However, if you configure a three-stage hash and split a 24-bit hash into three 8-bit hashes, you can reduce the amount of allocated memory space while allowing 2 24 entries, just like a single hash table. Therefore, even if the same size memory is used, the range of hash value can be increased.

본 발명은 이러한 원리를 활용한 것이다.The present invention utilizes this principle.

전술한 목적을 달성하기 위한 본 발명은, 사전에 정의된 URL 목록으로부터 해시트리를 점진적으로 생성하는 과정(해시트리 생성과정, A)과, 상기 해시트리를 이용하여 검색대상 URL을 빠르고 효과적으로 검색하는 과정(URL 검색과정, B)으로 이루어진 URL 검색방법에 관한 것이다.In order to achieve the above object, the present invention provides a process for gradually generating a hashsheet from a predefined URL list ( Hattry generation process, A ), and quickly and effectively searching for a search target URL using the hattry. It relates to a URL search method consisting of a process ( URL search process, B ).

본 발명에서 상기 해시트리 생성과정(A)는, (a) 사전에 정의된 URL 목록에서 해시트리에 삽입할 URL 하나를 추출하는 단계; (b) 추출된 URL을 호스트이름과 경로로 분리하는 단계; (c) 해시함수를 이용하여 호스트이름으로부터 해시값 튜플(I0,I1, … ,In-1)을 생성하는 단계; (d) 상기 해시값 튜플(I0,I1, … ,In-2)을 해시트리 각 단계의 인덱스로 활용하여 해당되는 종단 노드를 찾고 종단 노드가 존재 하지 않을 경우 내부 노드와 종단 노드를 생성하는 단계; (e) 상기 종단 노드의 인덱스(In-1) 위치에 호스트 이름에 관한 정보와 경로에 관한 정보를 리스트로 저장하는 단계; (f) URL 목록의 모든 URL에 대하여 상기 (a)~(e) 단계를 수행한 후 해시트리 생성과정을 완료하는 단계;를 포함한다.In the present invention, the hatstry generating process ( A ) comprises: (a) extracting one URL to be inserted into the hatstry from the predefined URL list; (b) separating the extracted URL into a host name and a path; (c) generating a hash value tuple (I 0 , I 1 ,..., I n-1 ) from the host name using the hash function; (d) The hash value tuple (I 0 , I 1 ,..., I n-2 ) is used as an index of each step of the hash matrix to find the corresponding end node, and if the end node does not exist, the internal node and the end node are used. Generating; (e) storing the information about the host name and the information about the path as a list at the index I n-1 of the end node; and (f) completing the hash creation process after performing steps (a) to (e) for all URLs in the URL list.

본 발명에서 해시트리를 이용하여 검색대상 URL을 검색하는 검색과정(B)는, (a) 검색대상 URL 입력단계; (b) 상기 검색대상 URL을 호스트이름과 경로로 분리하는 단계; (c) 상기 해시트리 생성과정에서 이용된 해시함수와 동일한 해시함수를 이용하여 호스트이름으로부터 해시값 튜플(J0,J1, … ,Jn-1)을 생성하는 단계; (d) 해시값 튜플(J0,J1, … ,Jn-1)을 각 단계 인덱스로 활용하여 상기 해시트리에서 해당 리스트를 찾는 단계; (e) 상기 리스트에서 저장된 호스트이름과 경로정보에 관련된 정보를 비교하는 단계;를 포함하는 것을 특징으로 하는 해시트리 이용한 URL 검색방법에 관한 것이다.In the present invention, a search process ( B ) of searching for a search target URL using a hashtree includes: (a) inputting a search target URL; (b) separating the search target URL into a host name and a path; (c) generating a hash value tuple (J 0 , J 1 , ..., J n-1 ) from the host name using the same hash function as the hash function used in the hash creation process; (d) finding a corresponding list in the hash using a hash value tuple (J 0 , J 1 ,..., J n-1 ) as each step index; and (e) comparing the host name stored in the list with information related to the path information.

이상과 같이 URL 해시트리를 이용한 검색방법은 해시트리 노드와 인덱스를 이용하여 해당되는 리스트의 존재여부를 확인하고 리스트가 존재할 경우만 리스트를 이용하여 다시 검색하기 때문에 주어진 URL이 목록에 포함되어 있지 않은 경우 빨리 알아낼 수 있다.As mentioned above, the search method using the URL hashsheet checks the existence of the corresponding list using the hash node and the index, and searches again using the list only if the list exists, so the given URL is not included in the list. If you can find out quickly.

또한 본 발명에 의하면, 해시트리에서 사용하지 않는 인덱스의 노드는 할당하지 않기 때문에 같은 크기의 인덱스를 가지는 단일 해시 테이블 방법에 비하여 적은 메모리를 사용한다. 단일 해시 테이블 방법은 인덱스의 충돌을 예방하기 위하여 충분히 큰 해시 테이블을 이용하면 사용하지 않는 인덱스의 해시 테이블도 할당하는 단점을 가지고 있지만 해시트리를 이용할 경우 사용하는 인덱스의 해시 테 이블만을 생성하기 때문에 실제 메모리는 사용하지 않고 가상의 인덱스 공간들을 얻을 수 있는 장점이 있다.In addition, according to the present invention, since nodes of an index that are not used in the hash table are not allocated, less memory is used as compared to a single hash table method having an index having the same size. The single hash table method has the disadvantage of allocating a hash table of an unused index by using a sufficiently large hash table to prevent index collisions.However, since a hash table only generates a hash table of an index that is used The advantage is that virtual index spaces can be obtained without using memory.

이하 도면을 참조하여 본 발명을 상세하게 설명한다. 그러나 이들은 예시적인 목적일 뿐 본 발명이 이에 한정되는 것은 아니다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. However, these are for illustrative purposes only and the present invention is not limited thereto.

도 2는 URL 해시트리의 일반적인 구조를 그린 도면이다. 해시함수를 이용하여 목록상 URL의 호스트이름으로부터 계산된 해시값의 튜플을 생성하여 해시트리의 인덱스(I0~In-1)로 사용한다. 2 is a diagram illustrating a general structure of a URL hashtree. A hash function is used to generate a tuple of hash values calculated from the host names of the URLs in the list and use them as indices (I 0 ~ I n-1 ) of the hashtree.

호스트이름으로부터 해시값의 튜플을 생성하는 방법은 여러 가지가 있다. 예를 들어 다중의 해시함수를 사용하여 여러 해시값을 얻을 수도 있고, 단일 해시함수로 얻은 단일 해시값의 부분을 취하여 여러 해시값을 얻을 수도 있다. 해시값 튜플에서 해시값의 개수는 해시트리의 총 단계수와 같고 해시값의 비트수는 해당 단계의 해시 테이블 크기와 관련이 있다. There are several ways to generate a tuple of hash values from a hostname. For example, multiple hash functions can be used to obtain multiple hash values, or multiple hash values can be obtained by taking part of a single hash value obtained by a single hash function. In a hash value tuple, the number of hash values is equal to the total number of steps in the hashtree, and the number of bits of the hash value is related to the hash table size of the step.

해시트리의 내부 노드는 하위 단계의 해시 테이블의 메모리 포인터가 저장되고 해시트리의 종단 노드에는 호스트 이름에 관한 정보와 경로에 관한 정보를 저장하는 리스트의 메모리 포인터가 저장된다. Internal nodes of the hashtree store memory pointers of lower-level hash tables, and end-point nodes of the hashtree store memory pointers of lists that store information about host names and path information.

서로 다른 URL이 같은 해시값 튜플을 갖는 경우에는 리스트를 이용하여 여러 URL이 같은 종단 노드에 저장될 수 있도록 한다. If different URLs have the same hash value tuples, the list can be used so that multiple URLs can be stored on the same end node.

도 3은 URL을 입력받아 해시트리를 생성하는 과정을 순서도로 나타낸 도면이다. URL 해시트리를 생성하기 위하여 URL 목록을 입력 받고 입력 받은 URL 목록의 URL들을 다음과 같은 단계에 따라 점진적으로 해시트리에 삽입한다: (a) 삽입할 URL을 추출하고 (b) 호스트이름과 경로로 분리하고 (c) 해시함수를 이용하여 분리된 호스트이름으로 해시값 튜플을 생성한다. (d) 해시값 튜플을 해시트리 각 단계의 인덱스로 활용하여 해당되는 종단 노드를 찾고 종단 노드가 존재하지 않을 경우 내부 노드와 종단 노드를 생성한다. (e) 상기 종단 노드의 인덱스(In-1)위치에 호스트이름에 관한 정보와 경로에 관한 정보를 리스트로 저장한다. 디렉토리를 저장하고 싶을 경우에는 디렉토리임을 따로 명시하지 않고, 디렉토리 이름에 '/'를 덧붙여 저장한다. 또한 상기 리스트는 추후 빠른 검색을 위하여 특정 값으로 정렬할 수 있다. (f) URL 목록의 모든 URL들을 대상으로 반복적으로 상기 과정을 실행하여 모든 URL을 해시트리에 저장한다. 이러한 과정을 거쳐 URL 목록의 모든 URL이 해시트리에 삽입된다.3 is a flowchart illustrating a process of generating a hashtree by receiving a URL. To create a URL hashlist, enter a list of URLs and gradually insert the URLs from the URL list into the hashlist using the following steps: (a) Extract the URL to insert and (b) With the hostname and path (C) Create a hash value tuple with a separate hostname using the hash function. (d) Hash value tuple is used as index of each step of hash matrix to find the corresponding end node and if there is no end node, internal node and end node are created. (e) The information on the host name and the path information are stored in a list at the index I n-1 of the end node. If you want to save a directory, do not specify it as a directory, but add the directory name with '/'. The list can also be sorted by a specific value for quick retrieval later. (f) Repeat the above procedure for all URLs in the URL list to store all URLs in the hashtree. This process inserts all URLs in the URL list into the hashtree.

도 4는 URL 목록을 이용하여 URL 해시트리를 생성하는 과정에서 앞 부분에서 3개의 URL을 저장하고 4번째 URL을 삽입을 나타내고 있는 도면이다. 호스트 이름이 같은 두 URL은 해시트리에서 같은 위치에 리스트로 저장되고 나머지 URL은 해시 트리에서 다른 위치에 저장되었다.FIG. 4 is a diagram illustrating three URLs being stored at the front and inserting a fourth URL in the process of generating a URL hashtree using the URL list. Two URLs with the same host name were stored as lists in the same location in the hashtree, and the remaining URLs were stored in different locations in the hash tree.

도 5는 URL 목록을 저장하고 있는 해시트리에서 검색대상 URL을 검색하는 방법을 순서도로 표현한 도면이다: (a) 검색 대상 URL을 입력받아서 (b) 호스트이름과 경로로 분리하고 (c) 해시함수를 이용하여 호스트이름으로부터 해시값 튜플을 생성한다. (d) 생성된 해시값 튜플을 해시트리의 인덱스로 사용하여 리스트를 찾는다. 생성된 해시값 튜플로 리스트를 찾지 못했다면 검색에 실패하고 종료한다. (e) 리스트를 찾았다면 리스트를 검색하면서 저장된 호스트이름과 경로에 관련된 정보를 리스트의 마지막까지 비교한다. 만약 리스트를 생성할 때, 특정 정보를 이용하여 리스트를 정렬하였다면 노드의 끝까지 비교하지 않아도 된다. URL의 포함관계를 찾기 위하여 경로 비교 시 문자열 비교를 사용하고 문자열 비교 길이는 트리노드에 저장된 경로의 길이로 정한다. 따라서 트리노드에 저장된 경로의 길이가 더 길 경우 문자열을 비교하지 않고 다음 노드로 이동할 수 있다.5 is a flowchart illustrating a method of searching a search target URL in a hash store storing a list of URLs: (a) receiving a search target URL, (b) separating a host name and a path, and (c) a hash function. Create a hash value tuple from the hostname using. (d) Find the list using the generated hash value tuple as the index of the hash table. If the list of generated hash value tuples is not found, the search fails and terminates. (e) If you find a list, search the list and compare the stored hostname and path information to the end of the list. If you are sorting the list using specific information when creating the list, you do not have to compare to the end of the node. When comparing paths, the string comparison is used to find the inclusion relationship of the URL. The length of the string comparison is determined by the length of the path stored in the tree node. Therefore, if the path stored in the tree node is longer, you can move to the next node without comparing strings.

도 6은 URL 트리를 이용하여 검색대상 URL을 검색하는 방법을 예시적으로 설명하고 있는 도면이다. FIG. 6 is a diagram for explaining a method of searching for a search target URL by using a URL tree.

"www.hostname.com/dir2/file.html"을 입력 받아 호스트이름과 경로로 분리하고 해시함수를 이용하여 분리된 호스트이름으로 해시값 튜플을 생성하고 생성된 해시값 튜플 (4, 2,..2)을 인덱스로 사용하여 리스트를 찾는다. 해당 인덱스에 리스트가 존재하므로 리스트의 첫 번째 노드와 호스트이름과 경로관련 정보를 비교한 다. 호스트이름 관련 정보는 같지만 경로의 길이가 더 길기 때문에 리스트의 다음 노드로 이동한다. 해당 노드에서는 호스트이름 관련 정보가 같고 노드에 저장된 경로가 검색대상 URL의 경로를 포함하고 있기 때문에 검색에 성공한다.Inputs "www.hostname.com/dir2/file.html" and separates it into host name and path, and creates hash value tuple with separated host name by using hash function and generated hash value tuple (4, 2,. Find the list using .2) as an index. Since the list exists at the index, the host name and path related information are compared with the first node of the list. Since the hostname information is the same but the path is longer, it moves to the next node in the list. In this node, the search is successful because the hostname-related information is the same and the path stored in the node contains the path of the search target URL.

도 1은 종래 기술에 의해서 URL 목록에서 해시 테이블로 변환되는 일례를 보여주는 개념도.1 is a conceptual diagram illustrating an example of conversion from a URL list to a hash table according to the related art.

도 2는 본 발명의 URL 해시트리의 일반적인 구조를 나타내고 있는 개념도.2 is a conceptual diagram showing the general structure of the URL hashtree of the present invention.

도 3은 본 발명에 의해서 URL 목록에서 해시트리로 변환되는 과정을 설명하는 순서도.3 is a flowchart illustrating a process of converting a URL list into a hash list according to the present invention.

도 4는 본 발명에 의해서 URL 목록에서 URL 해시트리로 변환되는 과정의 일례를 보여주는 개념도.4 is a conceptual diagram illustrating an example of a process of converting a URL list into a URL hashery according to the present invention.

도 5는 URL 해시트리에서 검색대상 URL을 검색하는 과정을 설명하는 순서도.5 is a flowchart illustrating a process of searching for a search target URL in a URL hashtree.

도 6은 URL 해시트리에서 검색대상 URL을 검색하는 과정의 일례를 보여주는 개념도.6 is a conceptual diagram illustrating an example of a process of searching for a search target URL in a URL hashtree;

Claims (5)

(A) (a) 사전에 정의된 URL 목록에서 해시트리에 삽입할 URL 하나를 추출하는 단계; (A) (a) extracting one URL to be inserted into the hashlist from a predefined URL list; (b) 추출된 URL을 호스트이름과 경로로 분리하는 단계; (b) separating the extracted URL into a host name and a path; (c) 해시함수를 이용하여 호스트이름으로부터 해시값 튜플(I0,I1, … ,In-1)을 생성하는 단계; (c) generating a hash value tuple (I 0 , I 1 ,..., I n-1 ) from the host name using the hash function; (d) 상기 해시값 튜플(I0,I1, … ,In-2)을 해시트리 각 단계의 인덱스로 활용하여 해당되는 종단 노드를 찾고 종단 노드가 존재 하지 않을 경우 내부 노드와 종단 노드를 생성하는 단계; (d) The hash value tuple (I 0 , I 1 ,..., I n-2 ) is used as an index of each step of the hash matrix to find the corresponding end node, and if the end node does not exist, the internal node and the end node are used. Generating; (e) 상기 종단 노드의 인덱스(In-1) 위치에 호스트 이름에 관한 정보와 경로에 관한 정보를 리스트에 저장하는 단계;(e) storing information about a host name and information about a path in a list at an index I n-1 of the end node; (f) URL 목록의 모든 URL에 대하여 상기 (a)~(e) 단계를 수행한 후 해시트리 생성과정을 완료하는 단계;를 포함하는 해시트리 생성과정:과(f) performing all steps of the URL list after completing steps (a) to (e) to complete the process of creating a hash recipe ; (B) (a) 검색 대상 URL 입력단계; (B) (a) inputting a search target URL; (b) 검색 대상 URL을 호스트이름과 경로 분리하는 단계;(b) separating a search target URL from a host name; (c) 해시함수를 이용하여 호스트이름으로부터 해시값 튜플(J0,J1, … ,Jn-1)을 생성하는 단계; (c) generating a hash value tuple J 0 , J 1 ,..., J n-1 from the host name using the hash function; (d) 상기 해시값 튜플(J0,J1, … ,Jn-1)을 이용하여 상기 해시트리에서 리스트를 찾는 단계; (d) finding a list in the hash using the hash value tuples (J 0 , J 1 ,..., J n-1 ); (e) 리스트에서 저장된 호스트이름과 경로정보에 관련된 정보를 비교하는 단계;를 포함하는 URL 검색과정:으로 이루어지는 것을 특징으로 하는 해시트리를 이용한 URL 검색방법.(e) comparing the information related to the host name and the path information stored in the list; URL search process comprising: consisting of a URL search method using a hash. 제 1 항에 있어서,The method of claim 1, 상기 과정(A)의 단계(e)에서, URL을 호스트이름 관련 정보와 경로 관련 정보로 구분하여 저장하는 것을 특징으로 하는 해시트리를 이용한 URL 검색방법.In step (e) of the step (A), the URL retrieval method using a hash, characterized in that the URL is divided into the host name-related information and the path-related information and stored. 제 1 항에 있어서,The method of claim 1, 상기 과정(A)의 단계(e)에서, URL을 리스트에 저장할 때에 경로에 관한 정보가 디렉토리일 경우 정보의 마지막에 '/'를 덧붙여 저장하는 것을 특징으로 하는 해시트리를 이용한 URL 검색방법.In the step (e) of the step (A), when the information about the path is a directory when storing the URL in the list, the URL retrieval method using a hash, characterized in that the end of the information stored by adding '/'. 제 1 항에 있어서,The method of claim 1, 상기 과정(A)의 단계(c)와 (d), 상기 과정(B)의 단계(c)와 (d)에서, URL의 해시함수를 이용하여 호스트이름으로 해시값 튜플을 생성하고, 각 해시값을 URL 해시트리의 각 단계 인덱스로 사용하는 것을 특징으로 하는 해시트리를 이용한 URL 검색방법.In steps (c) and (d) of step (A), and steps (c) and (d) of step (B), a hash value tuple is generated with a host name using a hash function of URL, and each hash A method for searching URLs using hatstry, characterized in that the value is used as the index of each step of the URL data. 제 1 항에 있어서,The method of claim 1, 상기 과정(B)에서, 검색대상 URL을 해시트리의 노드와 해시값 튜플을 이용하여 먼저 간략하게 검색하는 단계와 리스트를 이용하여 정확하게 검색하는 단계를 구분하여 검색하는 것을 특징으로 하는 해시트리를 이용한 URL 검색방법.In the process (B), the search target URL is classified by first searching by using a node and a hash value tuple of the hashtree, and searching by using a list. URL search method.
KR20080081135A 2008-08-20 2008-08-20 검색 RL search method using hatstry Active KR100999408B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20080081135A KR100999408B1 (en) 2008-08-20 2008-08-20 검색 RL search method using hatstry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20080081135A KR100999408B1 (en) 2008-08-20 2008-08-20 검색 RL search method using hatstry

Publications (2)

Publication Number Publication Date
KR20100022565A true KR20100022565A (en) 2010-03-03
KR100999408B1 KR100999408B1 (en) 2010-12-09

Family

ID=42175027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080081135A Active KR100999408B1 (en) 2008-08-20 2008-08-20 검색 RL search method using hatstry

Country Status (1)

Country Link
KR (1) KR100999408B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140039696A (en) * 2012-09-25 2014-04-02 삼성전자주식회사 Method and apparatus for searching url address in url list in a communication system
KR20160069707A (en) * 2014-12-09 2016-06-17 홍익대학교 산학협력단 Apparatus and method for searching address based on hashing using temporal locality
KR102000627B1 (en) * 2019-01-04 2019-07-16 (주)공간인소프트 Data updating method and apparatus
KR102112079B1 (en) * 2019-11-06 2020-05-18 (주)모니터랩 Apparatus and method for processing URL
CN112632360A (en) * 2020-12-30 2021-04-09 北京安博通科技股份有限公司 Matching method and device for big data URL (Uniform resource locator) library and storage medium
KR20230167947A (en) 2022-06-03 2023-12-12 (주)엔토빌소프트 Method for generating url map, url examination system including url map and method for examining url using url map

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140039696A (en) * 2012-09-25 2014-04-02 삼성전자주식회사 Method and apparatus for searching url address in url list in a communication system
KR20160069707A (en) * 2014-12-09 2016-06-17 홍익대학교 산학협력단 Apparatus and method for searching address based on hashing using temporal locality
KR102000627B1 (en) * 2019-01-04 2019-07-16 (주)공간인소프트 Data updating method and apparatus
KR102112079B1 (en) * 2019-11-06 2020-05-18 (주)모니터랩 Apparatus and method for processing URL
CN112632360A (en) * 2020-12-30 2021-04-09 北京安博通科技股份有限公司 Matching method and device for big data URL (Uniform resource locator) library and storage medium
KR20230167947A (en) 2022-06-03 2023-12-12 (주)엔토빌소프트 Method for generating url map, url examination system including url map and method for examining url using url map

Also Published As

Publication number Publication date
KR100999408B1 (en) 2010-12-09

Similar Documents

Publication Publication Date Title
CN111460311B (en) Search processing method, device, equipment and storage medium based on dictionary tree
CN107153647B (en) Method, apparatus, system and computer program product for data compression
US6564211B1 (en) Fast flexible search engine for longest prefix match
US6490592B1 (en) Method of and apparatus for generating a tree data structure supporting longest match lookup
US8117215B2 (en) Distributing content indices
JP2638307B2 (en) How to search the database directory
KR101467589B1 (en) One or more device readable media having a data structure, and one or more device readable media having device executable instructions
CN111868710B (en) Random extraction forest index structure for searching large-scale unstructured data
US9020951B2 (en) Methods for indexing and searching based on language locale
US7526497B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
CN111801665B (en) Hierarchical Locality Sensitive Hash (LSH) partition index for big data applications
KR100999408B1 (en) 검색 RL search method using hatstry
CN103077208B (en) URL(uniform resource locator) matched processing method and device
CN102246172A (en) System and method for distributed index searching of electronic content
US7756859B2 (en) Multi-segment string search
US6735600B1 (en) Editing protocol for flexible search engines
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN100496019C (en) A Method for Rapid Search and Update of IPv6 Routing Table
KR102698516B1 (en) Network Key Value Indexing Design
KR101089722B1 (en) Prefix tree-based indexing method and apparatus, recording medium thereof
US20150160921A1 (en) Parallel Sorting Key Generation
US8682644B1 (en) Multi-language sorting index
KR20010056948A (en) Method of IP subnet information management on database using binary string
KR100560420B1 (en) How to Retrieve Internet Protocol Addresses Using Tri
CN102902734A (en) Method and system for catalogue storage and mapping

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20080820

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100416

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20101126

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20101202

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20101203

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20131125

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20131125

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20141201

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20141201

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20151201

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20151201

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20161125

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20171122

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20171122

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20191202

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20191202

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20201130

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20211130

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20221130

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20231128

Start annual number: 14

End annual number: 14