KR100828232B1 - 계층적으로 저장된 인덱스들을 구비한 검색 엔진 - Google Patents

계층적으로 저장된 인덱스들을 구비한 검색 엔진 Download PDF

Info

Publication number
KR100828232B1
KR100828232B1 KR1020067009046A KR20067009046A KR100828232B1 KR 100828232 B1 KR100828232 B1 KR 100828232B1 KR 1020067009046 A KR1020067009046 A KR 1020067009046A KR 20067009046 A KR20067009046 A KR 20067009046A KR 100828232 B1 KR100828232 B1 KR 100828232B1
Authority
KR
South Korea
Prior art keywords
search
tier
data items
database
sub
Prior art date
Application number
KR1020067009046A
Other languages
English (en)
Other versions
KR20060083229A (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 오버츄어 서비시즈, 인크.
Publication of KR20060083229A publication Critical patent/KR20060083229A/ko
Application granted granted Critical
Publication of KR100828232B1 publication Critical patent/KR100828232B1/ko

Links

Images

Classifications

    • 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/951Indexing; Web crawling techniques
    • 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/99933Query processing, i.e. searching
    • 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/99937Sorting

Landscapes

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

Abstract

WWW를 크럴하며 데이터베이스 내의 WWW 상에서 발견되는 페이지를 저장하는 크럴러를 포함하는 검색 엔진이 개시된다. 인덱스는 1차 인덱스를 생성하기 위하여 데이터베이스 내의 페이지를 인덱싱한다. 문서 맵핑부는 페이지의 랭킹에 기초하여 데이터베이스 내의 페이지를 복수의 티어로 맵핑한다. 랭킹은 비교적 높은 값 컨텍스트를 갖는 페이지의 일부를 기초로 한다. 프로세서는 맵핑에 기초하여 1차 인덱스로부터 복수의 서브 인덱스를 생성한다. 서브 인덱스는 검색 노드 클러스터 내에 저장된다. 클러스터는 복수의 행 및 열으로 논리적으로 배열된 검색 노드의 매트릭스이다. 동일 열 내의 검색 노드는 동일 서브 인덱스를 포함한다. 동일 행 내의 검색 노드는 다른 서브 인덱스를 포함한다. 사용자에 의해 수신된 검색 질의는 검색 노드의 제1 티어에 질의를 차례로 전달하는 디스패처로 전송된다. 디스패처가 검색 노드의 다른 티어에 검색 질의를 전달해야 할 때를 나타내는 알고리즘을 통한 폴이 개시된다.
데이터베이스, 검색 엔진, 인덱스, 데이터 아이템

Description

계층적으로 저장된 인덱스들을 구비한 검색 엔진{SEARCH ENGINE WITH HIERARCHICALLY STORED INDICES}
본 발명은 검색 엔진에 관한 것으로, 더욱 특히 크럴링된(crawled) 문서를 티어(tier)에 맵핑한 후 계층식으로 이들 티어를 검색하는 검색 엔진에 관한 것이다.
WWW(world wide web)는 인터넷을 통해 액세스가능한 수십억 페이지를 포함하는 분포 데이터베이스이다. 사용자 질의(query)에 응답하여 유용한 결과를 생성토록 이들 페이지를 검색 및 인덱싱하는 것은 항상 도전사항이다. WWW를 검색하는데 전형적으로 사용되는 디바이스는 검색 엔진이다. 작업 검색 엔진을 유지하는 것은 매일 기존 페이지가 계속해서 변하면서 추가되는 수백만의 페이지와 같이 WWW가 항상 발전하기 때문에 어렵다. 또한, 검색 실행의 비용은 전형적으로 검색된 인덱스의 사이즈에 직접 대응한다. WWW내의 대용량 데이터 및 데이터량을 처리하기 위하여, 대부분의 검색 엔진은 복제 및 분할 기술(이하 후술됨)을 이용하여 분포되어 문서의 수를 줄인다.
전형적인 종래의 검색 엔진(50)은 도 1에 도시된다. 인터넷 또는 다른 소스(100)로부터의 페이지는 크럴러(102)의 사용을 통해 액세스된다. 크럴러(102)는 소스(100)로부터 문서를 집합시켜 이들 문서가 검색가능한 것을 보장한다. 많은 수의 알고리즘이 크럴러에 존재하며, 대부분의 경우 이들 크럴러는 공지된 하이퍼텍스트 문서 내의 링크에 후행하여 다른 문서를 획득한다. 크럴러(102)에 의해 회수된 페이지는 데이터베이스(108)에 저장된다. 그 후, 이들 문서는 인덱서(104)에 의해 인덱싱된다. 인덱서(indexer;104)는 데이터베이스 내의 검색가능한 문서의 인덱스를 구축한다. 전형적인 종래의 인덱싱 방법은 반전 파일, 벡터 스페이스, 서픽스(suffix) 구조, 및 이들의 하이브리드를 포함한다. 예컨대, 각각의 웹 페이지는 워드로, 그리고 페이지 상의 각 워드의 각각의 위치로 쪼개진다. 페이지는 그 후 워드 및 워드 각각의 위치에 의해 인덱싱된다. 전체 데이터베이스(108)의 1차 인덱스는 복수의 서브 인덱스(후술됨)로 쪼개지며, 각각의 서브 인덱스는 검색 노드 클러스터(106) 내의 검색 노드에 전송된다.
사용시, 사용자(112)는 검색 질의를 디스패처(dispatcher;110)에 기입한다. 디스패처(110)는 클러스터(106) 내의 검색 노드의 리스트에 순응하여 질의를 실행하고 이 질의를 선택된 검색 노드에 전달한다. 순응된 리스트는 각각의 파티션이 일단 검색된 것을 보장한다. 검색 노드 클러스터(106) 내의 검색 노드는 인덱서(104)에 의해 생성된 1차 인덱스의 각 부분을 검색하고, 문서 식별자 및 스코어와 함께 소트된(sorted) 검색 결과를 디스패처(110)에 돌려보낸다. 디스패처(110)는 수신된 결과를 합쳐서, 관련도 스코어(relevance score)로 소트되는 사용자에게 표시되는 최종 리스트를 생성한다. 관련도 스코어는 질의 자체 및 생성된 문서의 타입의 함수이다. 관련도에 사용되는 팩터는, 링크 기수(cardinality) 및 페이지 품질과 같은 문서에 대한 정적 관련도 스코어, 타이틀, 메타데이터 및 문서 헤더와 같은 문서의 우수한 부분, 외부 기준 및 기준의 "레벨"과 같은 문서의 권한, 및 문서, 글로벌 용어 빈도 및 문서 내의 용어 거리에서 질의 용어 빈도와 같은 문서 통계를 포함한다.
도 2를 참조하면, 검색 노드의 클러스터(106)가 도시된다. 예시적인 목적으로, 클러스터(106)는 열(122a, 122b 등)과 행(124a, 124b 등)에서 그룹핑된 매트릭스로 도시된다. 검색 노드의 각각의 열(122)에서, 인덱스의 동일 세트는 각각의 검색 노드에 대해 복제된다. 예컨대, 열(122a), 행(124a) 내의 검색 노드는 열(122a), 행(124b) 내의 검색 노드와 동일한 인덱스 서브세트를 포함한다. 검색 노드의 각 행(124)에서, 인덱스의 다른 서브세트가 사용된다. 인덱스는 검색을 위한 시간 총량을 분할하기 위해 동일하게 분할된다.
예컨대, 열(122a), 행(124a)내의 검색 노드는 열(122b), 행(124a) 내의 검색 노드와는 다른 인덱스의 서브세트를 포함한다. 각각의 검색 노드에서, "I"는 전체 데이터베이스(108)에 대한 인덱스를 나타내며, "S"는 검색 노드에 대응하고, "Sn(In)"은 검색 노드 n이 전체 인덱스 I의 서브인덱스 n을 유지하는 것을 나타내며, "Sm(In)"은 검색 노드 n의 복제수 m이 전체 인덱스 I의 서브 인덱스 n을 유지하는 것을 나타낸다.
디스패처(110)로부터의 각 질의는 각각의 검색 노드에 전송되어, 파티션마다 단일 노드가 질의된다(queried). 예컨대, 행(122a, 122b 등) 내의 모든 노드는 이들 노드의 조합이 그 전체 인덱스를 나타낼 때 질의된다. 즉, 클러스터(120) 내의 각 행은 전체 인덱스의 모든 파티션을 포함하는 검색 노드의 세트이다. 결과는 디스패처(110)에 의해 합쳐지며, 클러스터로부터 완전한 결과가 생성된다. 이런 식으로 데이터를 분할함에 의해, 데이터 볼륨이 정량화된다. 예컨대, n 열이 있다면, 각 노드에 대한 검색 시간은 디스패처(110)에 의해 결과를 합치는데 사용되는 시간을 배제한, n의 팩터만큼 기본적으로 감소한다.
검색 노드를 복제함에 의해, 각각의 인덱스에 대한 질의 처리 레이트는 증가한다. 도 2에서, 각 열 내의 모든 검색 노드는 동일 인덱스를 유지한다. 이는 디스패처(110)가 검색 노드의 세트를 선택하여 입력 질의를 조작할 때 각 인덱스 파티션에 대한 열 내의 노드들 사이를 순환하게 한다.
그러나, 본 발명은 전형적인 검색 엔진에서 고유 검색 질의가 매우 비대칭하게 분포한 것을 알게 되었다. 예컨대, 상위 25 질의는 전체 질의 볼륨의 1% 이상으로 고려된다. 그 결과, 1차 인덱스를 더욱 작은 서브 인덱스로 동일하게 분할하는 것은 최적의 결과를 제공하지 못한다.
따라서, 검색 질의의 분포의 관점에서 문서 및 인덱스를 조직화하는 검색 엔진에 대한 기술이 필요하게 되었다.
검색 엔진은 WWW를 크럴링하며 데이터베이스 내의 WWW상에서 발견되는 페이지를 저장하는 크럴러(crawler)를 포함한다. 인덱서는 데이터베이스 내의 페이지를 인덱싱하여 1차 인덱스를 생성한다. 문서 맵핑부는 데이터베이스 내의 페이지를 페이지의 랭킹에 기초하여 복수의 티어로 맵핑한다. 랭킹은 비교적 높은 값 컨텍스트를 갖는 페이지의 일부를 기초로 한다. 프로세서는 맵핑에 기초하여 1차 인덱스로부터 복수의 서브 인덱스를 생성한다. 서브 인덱스는 검색 노드 클러스터에 저장된다. 클러스터는 복수의 행 및 열으로 논리적으로 배열되는 검색 노드의 매트릭스이다. 동일 열 내의 검색 노드는 동일 서브 인덱스를 포함한다. 동일 행 내의 검색 노드는 다른 서브 인덱스를 포함한다. 사용자에 의해 수신된 검색 질의는 검색 노드의 제1 티어에 질의를 순서대로 전달하는 디스패처(dispacher)로 전송된다. 디스패처가 검색 노드의 다른 티어에 검색 질의를 전달해야할 때를 나타내는 폴 스루 알고리즘(fall through algorithm)이 개시된다.
본 발명의 다른 양상은 데이터 아이템을 데이터베이스 내에서 인덱싱하는 방법이다. 이 방법은 데이터베이스로부터 데이터 아이템을 회수하고 데이터 아이템의 1차 인덱스를 생성하는 단계를 포함한다. 본 방법은 데이터 아이템의 각 랭킹에 기초하여 데이터 아이템을 제1 및 제2 티어로 맵핑하는 단계를 더 포함한다. 본 방법은 이런 맵핑에 기초하여 1차 인덱스로부터 적어도 제1 및 제2 서브 인덱스를 생성하는 단계와, 적어도 제1 및 제2 서브 인덱스를 다른 검색 노드에 저장하는 단계를 더 포함한다.
본 발명의 다른 양상은 데이터베이스를 검색하는 방법이다. 이 방법은 데이터베이스로부터 데이터 아이템을 회수하는 단계와, 데이터 아이템의 1차 인덱스를 생성하는 단계를 포함한다. 이 방법은 데이터 아이템의 각각의 랭킹에 기초하여 데이터 아이템을 적어도 제1 및 제2 티어에 맵핑하는 단계를 더 포함한다. 이 방법은 맵핑에 기초하여 1차 인덱스로부터 적어도 제1 및 제2 서브 인덱스를 생성하는 단계를 더 포함한다. 이 방법은 다른 검색 노드에 적어도 제1 및 제2 서브 인덱스를 저장하는 단계와, 검색 질의를 수신하는 단계와, 검색 질의에 관한 결과 데이터 아이템에 대한 제1 티어를 검색하는 단계를 더 포함한다.
본 발명의 또 다른 양상은 데이터베이스를 인덱싱하기 위한 시스템이다. 이 시스템은 데이터베이스를 크럴링하여 데이터 아이템을 찾는 크럴러를 포함한다. 인덱서는 데이터 아이템을 수신하며, 1차 인덱스를 생성한다. 문서 맵핑부는 데이터 아이템의 각각의 랭킹에 기초하여 데이터 아이템을 적어도 제1 및 제2 티어에 맵핑한다. 프로세서는 맵핑에 기초하여 1차 인덱스로부터 적어도 제1 및 제2 서브 인덱스를 생성한다. 제1 검색 노드는 제1 서브 인덱스를 저장한다. 제2 검색 노드는 제2 서브 인덱스를 저장한다.
본 발명의 또 다른 양상은 데이터베이스의 검색을 가능하게 하는 검색 노드 클러스터이다. 클러스터는 복수의 열 및 복수의 행에 논리적으로 배열된 검색 노드를 포함한다. 열들 중 임의의 하나에서 모든 검색 노드는 실질적으로 동일한 정보를 포함한다. 행들 중 임의의 하나에서 모든 검색 노드는 다른 정보를 포함한다. 행 내의 검색 노드는 적어도 제1 및 제2 티어로 논리적으로 분할된다. 제1 티어 내의 검색 노드는 데이터베이스의 제1 부에 대한 인덱스를 포함한다. 제2 티어 내의 검색 노드는 데이터베이스의 제2 부에 대한 인덱스를 포함한다. 제1 및 제2 티어 내의 데이터는 데이터베이스의 제1 및 제2 부 내의 정보의 각 랭킹을 기초로 한다.
본 발명의 또 다른 양상은 데이터베이스를 크럴링하여 데이터 아이템을 찾는 크럴러를 포함하는 검색 엔진이다. 인덱서는 데이터 아이템을 수신하고 1차 인덱스를 생성한다. 문서 맵핑부는 데이터 아이템의 각 랭킹에 기초하여 데이터 아이템을 적어도 제1 및 제2 티어에 맵핑한다. 프로세서는 맵핑에 기초하여 1차 인덱스로부터 적어도 제1 및 제2 서브 인덱스를 생성한다. 제1 검색 노드는 제1 서브 인덱스를 저장한다. 제2 검색 노드는 제2 서브 인덱스를 저장한다. 디스패처는 질의를 수신하며 이 질의를 제1 검색 노드에 전달한다.
도 1은 종래의 검색 엔진 아키텍처를 도시한 블럭도이다.
도 2는 종래 기술에 따르는 노드의 클러스터를 도시한 도이다.
도 3은 본 발명의 일 실시예에 따르는 검색 엔진을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따르는, 티어로 문서를 맵핑하는 함수를 설명한 도이다.
도 5는 본 발명의 일 실시예에 따르는, 문서를 티어 및 노드의 최종 클러스터에 맵핑하는 것을 설명한 도이다.
도 6은 본 발명의 일 실시예에 따르는, 문서를 티어 및 노드의 최종 클러스터에 맵핑하는 것을 설명한 도이다.
도 7은 본 발명의 일 실시예에 따르는, 문서를 티어 및 노드의 최종 클러스터에 맵핑하는 것을 설명한 도이다.
도 8은 본 발명의 일 실시예에 따르는, 알고리즘을 통한 폴의 가변 변수에 대한 값을 표시한 테이블이다.
도 9는 본 발명의 일 실시예에 따르는 검색 알고리즘의 동작을 도시한 플로우챠트이다.
도 3을 참조하면, 본 발명의 일 실시예에 따르는 검색 엔진(90)이 도시된다. 인터넷(100)과 같은 정보의 소스 또는 기업체 또는 조직 네트워크와 같은 파일 또는 문서의 다른 집합은 정보의 소스에 대응하는 데이터베이스(108)에 데이터를 차례로 저장하는 크럴러(102)에 의해 크럴링된다. 문서 맵핑 알고리즘(114)은 후술되는 바와 같이 문서를 티어에 맵핑한다. 프로세서(111)에 의해 제어되는 인덱서(105)는 데이터베이스(108) 내의 맵핑된 문서에 기초하여 복수의 서브 인덱스를 구축한다. 검색 노드 클러스터(160) 내의 복수의 검색 노드 각각은 각각의 서브 인덱스를 저장하며, 그 서브 인덱스를 검색하는 것을 가능하게 한다. 디스패처(110)는 후술되는 바와 같이 사용자(112)로부터 질의를 검색 노드 클러스터(160)에 전송한다.
최근 연구에서, 인터넷 상에서 정보에 대한 가장 인기있는 질의가 비대칭적으로 분포됨을 알게되었다. 예컨대, 대부분의 질의(50-80%)는 상위 백만개의 가장 빈번히 요청되는 질의 내에 있다. 유사하게, 매달 하루에 동일 질의 중 80-85%가 중첩된다. 반대로, 질의 중 7% 만이 유사한 시간 주기에서 단지 1회 요청된다. 이런 사실을 활용하기 위해, 엔진은 인덱스가 반드시 동등하게 분할될 필요가 없는 디스조인티드 티어드 아키텍처(disjointed tiered architecture)를 이용한다.
이제, 도 4를 참조하면, 데이터베이스(108)의 데이터의 각 부분은 특성들의 집합에 기초하여 복수의 티어들 중의 하나로 맵핑된다 -3개의 티어들이 이 도면에 도시됨-. 예를 들어, 데이터베이스 관리자에 의해 정의된 제1 임계치 이상의, 검색 질의와는 독립적인, 정적(static) 관련도 랭킹을 갖는 것으로 간주되는 문서들은 1 티어로 맵핑될 수 있다. 다른 임계치에 기초하는 제2의 높은 랭킹을 갖는 문서들은 2 티어로 맵핑될 수 있다. 다른 예로서, 각 문서나 웹 페이지의 부분들은 다른 티어들로 분리될 수 있다. 특정 문서에서, 도 4에 도시된 것처럼, 헤더(header) 및 앵커(anchor)와 같은 상위 컨텍스트는 1 티어에 배치될 수 있고, 문서의 본문은 2 티어에 배치될 수 있다. 데이터베이스(108)의 데이터에 대해 주기적으로 맵핑이 수행된다.
이제 또한 도 5를 참조하면, 데이터 구조(명백하게 미도시)가 디스패처(110)에 저장되어서 클러스터(160)의 검색 노드들이 특정 티어들에 논리적으로 할당되도록 한다. 데이터베이스(108)의 문서들이 문서 맵핑 알고리즘(114)에 의해 티어들로 맵핑된 후, 그 티어들에 기초하여 인덱서(105)는 복수의 대응하는 서브 인덱스들을 생성한다. 서브 인덱스들은 클러스터(160)의 각 검색 노드들에 저장된다. 클러스터(160)는 검색 노드들의 논리 열들(162a, 162b, 162c 등)과 논리 행들(164a, 164b 등)을 포함한다. 열들과 행들에 노드들이 물리적으로 배치되고 있는 것으로 도시되는 한편, 명백히 노드들은 유사한 방식으로 논리적으로 배열되는 한, 그렇게 물리적으로 배치될 필요는 없다.
각 열(162)의 검색 노드들은 동일 서브 인덱스들의 복사본들을 포함하여 디스패처(110)가 복수의 검색 노드들을 통해 싸이클하도록 할 수 있다. 각 행(164)의 검색 노드들은 다른 서브 인덱스들을 포함한다. 예를 들어, 도 5에 도시된 것처럼, 열(162a)의 검색 노드들은 전부가 1 티어로부터의 정보를 포함한다. 그러므로, 알고리즘(114)에 의해 1 티어로 맵핑되는 것으로 결정된 문서들은 그렇게 맵핑되고, 인덱서(105)에 서브 인덱스가 생성되고, 이 1 티어를 위한 서브 인덱스는 열(162a)의 검색 노드들에 저장된다.
유사하게, 열(162b)의 검색 노드들은 2 티어의 정보의 부분을 포함한다. 열(162c)의 검색 노드들은 열(162b)의 검색 노드들에 포함되지 않는 2 티어로부터의 정보의 나머지를 포함한다. 2 티어에 대해 2개의 검색 노드 열들이 도시되고, 이들 노드들 가운데 인덱스들이 동등하게 분리될 수 있다. 명백히, 임의의 수의 노드들이 사용될 수 있다.
유사하게, 열(162d)의 검색 노드들은 3 티어로부터의 정보의 부분을 포함한다. 클러스터(160)의 설명을 용이하게 하기 위해, 각 노드가 동일 행의 다른 노드들과 동일하거나 다른 양의 정보를 포함할 수 있슴이 명백하지만, 각 열의 노드들은 크기가 동일한 것으로서 도시된다. 예를 들어, 열(162a), 행(164a)의 노드는 열(162b), 행(164a)의 노드보다 아마도, 그들이 다른 티어에 있기 때문에, 더 적은 정보를 가질 것이다. 도시된 티어 구조 아키텍처의 일례로서, 1 티어의 모든 노드들에 150만 문서들이 인덱스될 수 있고, 2 티어의 모든 노드들에 600만 문서들이 인덱스될 수 있고, 3 티어의 모든 노드들에 1000만 문서들이 인덱스될 수 있다.
디스패처(110)로부터의 각 질의는 1 티어의 인덱스들에서 먼저 검색되고나서, 디스패처(110)에 저장된 폴스루 알고리즘(fall through algorithm;FTA)에 기초하여 다른 티어들의 인덱스들로 계속된다. FTA는 다른 티어들에서 질의(query)가 계속하여 실행되어야 하는지를 판정하고, 또한 복수 티어들로부터의 결과들이 어떻게 병합되어야 하는지를 결정한다. 달리 설명하면, FTA는 관련도 점수 및 결과 집합에서 히트 수와 같은 기준들에 기초하여 티어들의 집합에서 질의의 경로를 결정한다. 또한, 그것은, 각 티어로부터의 얼마나 많은 결과들이 다음 티어가 검색되기 전에 사용될 수 있는지를 결정한다.
FTA는, hitlimit, percentlimit, ranklimit, termranklimit, 및 minusablehits를 포함하는 복수의 변수들을 사용하여, 다음 티어가 평가되어야 하는지를 판정한다. 변수 hitlimit은 다음 티어로 폴스루가 실행될 수 있기 전에 티어로부터 사용되는 히트 수의 평가이다. 예를 들어, 1 티어에서 2 티어로 점프하기 위해, hitlimit은 1000일 수 있고, 2 티어에서 3 티어로 점프하기 위해, hitlimit은 8100일 수 있다. percentlimit은 다음 티어로 폴스루가 실행될 수 있기 전에 사용될 수 있는 티어로부터의 히트들의 최대 퍼센트이다. 주어진 티어에서 히트 수가 전체 요청된 결과의 percentlimit보다 적으면, 폴스루가 발생한다. 예를 들어, 1 티어에서 2 티어로의 점프를 위해, percentlimt은 10일 수 있고, 2 티어에서 3 티어로 점프하기 위해, percentlimit은 30일 수 있다. termranklimit - 고려되고 있는 히트의 관련도 점수가 다른 변수 ranklimit 더하기 termranklimit 값에 질의에서 용어들의 수를 곱한 값보다 더 작으면, 다음 티어로의 폴스루가 실행된다. 예를 들어, 1 티어에서 2 티어로 점프하기 위해, ranklimit은 200일 수 있고 termranklimit은 400일 수 있다. 예를 들어, 2-용어 질의에 대해서, 이 기준을 초과하기 위한 히트에 대한 관련도 점수 200 + (2 * 400) = 1000일 것이다. 2 티어에서 3 티어로 점프하기 위해, ranklimit은 0이고, termranklimit은 0일 수 있다.
minusablehits - 다음 티어로 즉시 폴스루가 실행되지 않으므로, 주어진 티어에 대해 FTA에 대한 기준 이상을 초과해야 하는 히트 수. 이 수는 통상적으로 결과 페이지에서 사용자에게 제공되는 결과들의 수이다. 아이디어는 다음과 같다: 가장 자주 요청되는 히트 수를 생성하기 위해 폴스루가 필요할 것이라는 것이 알려지면, 폴스루는 될 수 있으면 빨리 수행되어야 한다는 것이다. 이 값은 일정한 값으로 사용되어야 한다. 예를 들어, 1 티어에서 2 티어로 점프하기 위해, minusablehits는 0일 수 있고, 2 티어에서 3 티어로 점프하기 위해, minusablehits는 100일 수 있다.
2 티어가 1 티어를 통과한 질의들만을 처리할 것이고, 3 티어가 1 티어와 2 티어 모두를 통과한 질의들만을 처리할 것이므로, 1 티어가 가장 높은 성능 노드들을 갖는 것이 바람직하다. 복사된 열들에 의해서 또는 각 노드에서 문서들의 수를 감소시켜서 2 티어와 2 티어에서 추가 용량을 얻을 수 있다.
도 5의 실시예에서, 1차원적 티어 구조 구성이 사용되고, 그 구성에서 모든 문서들과 대응하는 인덱스들이 정적 관련도 점수를 사용하여 분포된다. 예를 들어, 정적 관련도 점수는 링크 수, 링크 인기도, 또는 웹에서의 사이트 인기도에 기초될 수 있다.
예를 들어, 10억 레코드의 데이터베이스에서, 정적 관련도에 기초하여, 상위 3천만 문서들은 1 티어에 맵핑되고, 다음 3억 6천만 문서는 2 티어에 맵핑되고, 나머지 6억 1천만 문서들은 3 티어에 맵핑된다. 이 구성의 한 가지 단점은, 정적 관련도의 사용이 관련된 문서를 결정하기 위해 사용되는 전체 공식의 단지 일부이라는 점이다.
이제 도 6을 참조하면, 본 발명에 따른 노드들의 다른 클러스터(170)가 도시된다. 클러스터(170)는 클러스터(160) 대신에 사용될 수 있고, 열(172a, 172b 등)과 행(174a, 174b 등)에 노드들을 포함한다. 이 실시예에서, 1.5차원적 구성이 실현된다. 일정 시간 동안 1백만의 가장 보편적 질의들에 대해 질의 로그가 실행된다. 1백만 질의들의 각각에 대한 상위 20 히트들은 도 6의 도면부호 176에 도시된 것처럼 1 티어로 맵핑된다. 이것은 약 5백만 문서일 수 있다. 나머지 문서들은 정적 관련도 점수에 따라 분포된다. 예를 들어, 10억 문서 데이터베이스에 대해서, 상위 3천만 문서들은 1 티어에 맵핑되고(이들 문서들 중 5백만은 이 티어에 잠김), 3억 6천만 문서는 2티어으로 맵핑되고, 6억 1천만 문서는 3 티어로 맵핑된다. FTA가 상술된 것처럼 사용된다.
이제 도 7을 참조하면, 본 발명에 따른 노드들의 다른 클러스터(180)가 도시된다. 클러스터(180)는 클러스터(160) 대신에 사용될 수 있고, 열(182a, 182b 등)과 행(184a, 184b 등)의 노드들을 포함한다. 이 실시예에서, 2차원적 구성이 실현된다. 도 7의 실시예에서, 도 6의 1.5차원적 구성과 동일한 티어 분포가 선택적으로 사용된다. 그러나, 1 티어와 동시에 먼저 모든 문서들에 대한 높은 값 컨텍스트들의 정보가 검색된다. 이들 높은 값 컨텍스트들은 문서의 동적 관련도를 결정할 때 각 웹 페이지들의 가장 중요한 부분들이다. 이들 부분들은 타이틀, 앵커 등을 포함한다.
더 많은 히트들이 필요하면, 반환된 결과로부터 복사본들을 제거하면서 복수 티어 구성을 사용하여 전체 인덱스가 계속하여 검색된다. 예를 들어, 상위 3천만 문서(상술된 것처럼 5백만이 잠김)의 본문 컨텍스트는 1 티어로 맵핑되고, 3억 6천만 문서의 본문 컨텍스트는 2 티어로 맵핑되고, 6억 1천만 문서의 본문 컨텍스트는 3 티어로 맵핑된다. 모든 10억 문서의 상위 컨텍스트를 포함하는 새로운 0 티어가 사용된다. 도 8에, 클러스터(180)의 아키텍처를 위한 FTA의 변수들에 대한 일부 값들이 도시된다. 선택적인 4 티어는 낮은 값 문서들과 함께 사용될 수 있다. 그런 문서들은 단순한 링크들이거나 스팸(spam) 문서들일 것이다. 0 티어에서 모든 티어들의 높은 볼륨 컨텍스트들을 검색하여, 본 발명은, 2 티어와 3 티어 노드들에서 비교적 적은 정보의 부분집합의 검색이 이들 노드들에서 인덱스된 전체 정보를 검색하는 것보다 훨씬 더 싸다는 사실로부터 이득을 얻는다.
이제 도 9를 참조하면, 본 발명의 동작들 중의 일부를 요약하는 흐름도가 도시된다. S2에서, 검색 엔진은 데이터 소스를 크럴(crawl)한다. S4에서, 데이터 소스로부터 수집된 문서들은 데이터베이스에 저장된다. S6에서, 상술된 알고리즘들 중의 하나를 사용하여 문서들은 티어들로 분리된다. S8에서, 문서들은 결정된 티어들로 맵핑된다. S10에서, 결정된 티어들에 기초하여 서브 인덱스들이 생성된다. S12에서, 서브 인덱스들은 검색 노드 클러스터의 각 검색 노드들에 저장된다. S13에서, 사용자로부터 검색 질의가 수신된다. S14에서, 검색 엔진은 1 티어의 인덱스들을 검색한다. S16에서, FTA에 기초하여, 검색 엔진은 2 티어 검색 노드들과 임의의 다른 티어 검색 노드들을 검색한다. S18에서, 사용자에게 검색의 결과가 제공된다.
그러므로, 데이터베이스에서 크럴된 문서들을 분리된 티어들로 맵핑하여, 더 빠르고 더 비용절감되는 검색 엔진이 실현된다. 또한, 이들 티어들 중에 얼마나 많은 티어들이 검색되는지를 동적으로 결정하는 폴스루 알고리즘을 제공하여, 데이터베이스의 스케일링이 향상된다.
본 발명이 양호한 실시예들과 연결하여 기재되고 설명된 한편, 당업자들에게 명백할 것처럼, 본 발명의 취지와 범위를 벗어나지 않고, 다수의 변형들과 수정들이 만들어질 수 있고, 그런 변형과 수정이 본 발명의 범위 내에 포함되려고 의도되므로, 상술된 방법이나 구성의 정확한 세부사항들로 본 발명이 제한되지는 않는다.

Claims (16)

  1. 데이터 아이템들을 데이터베이스 내에서 인덱싱하는 방법에 있어서,
    상기 데이터베이스로부터 상기 데이터 아이템들을 회수하는 단계와,
    상기 데이터 아이템들의 1차 인덱스(primary index)를 생성하는 단계와,
    상기 데이터 아이템들의 각 랭킹에 기초하여, 상기 데이터 아이템들을 적어도 제1 티어 및 제2 티어에 맵핑하는 단계와,
    상기 맵핑에 기초하여, 상기 1차 인덱스로부터 적어도 제1 및 제2 서브 인덱스를 생성하는 단계와,
    상기 적어도 제1 및 제2 서브 인덱스를 상이한 검색 노드들 내에 저장하는 단계
    를 포함하는 데이터 아이템 인덱싱 방법.
  2. 제1항에 있어서,
    상기 데이터 베이스는 WWW(World Wide Web)을 통해 이용가능한 페이지들 및 문서들의 집합인 데이터 아이템 인덱싱 방법.
  3. 제1항에 있어서,
    상기 맵핑은 상기 데이터 아이템들의 정적 관련도 스코어(static relevance score)에 기초하는 데이터 아이템 인덱싱 방법.
  4. 제1항에 있어서,
    상기 데이터 베이스 상에서 다수의 질의에 대해 검색 질의 로그를 실행하는 단계와,
    상기 검색 질의 로그의 결과들을 수신하는 단계
    를 더 포함하고,
    상기 제1 서브 인덱스는 상기 질의 로그의 결과들에 기초하는 데이터 아이템 인덱싱 방법.
  5. 제3항에 있어서,
    상기 데이터베이스 상에서 다수의 질의에 대해 검색 질의 로그를 실행하는 단계와,
    상기 검색 질의 로그의 결과들을 수신하는 단계
    를 더 포함하고,
    상기 제1 서브 인덱스는 상기 질의 로그의 결과들에 기초하는 데이터 아이템 인덱싱 방법.
  6. 제1항에 있어서,
    상기 맵핑은 상기 데이터 아이템들의 값 컨텍스트(value context)에 기초하는 데이터 아이템 인덱싱 방법.
  7. 제1항에 있어서,
    상기 데이터 아이템들은 웹페이지들이고, 상기 맵핑은 상기 웹 페이지의 관련도 스코어에 기초하는 데이터 아이템 인덱싱 방법.
  8. 데이터베이스로부터 데이터 아이템들을 회수하는 단계와,
    상기 데이터 아이템들의 1차 인덱스를 생성하는 단계와,
    상기 데이터 아이템들의 각 랭킹에 기초하여, 상기 데이터 아이템들을 제1 티어 및 제2 티어에 맵핑하는 단계와,
    상기 맵핑에 기초하여, 상기 1차 인덱스로부터 제1 및 제2 서브 인덱스를 생성하는 단계와,
    상기 제1 및 제2 서브 인덱스를 상이한 검색 노드들 내에 저장하는 단계와,
    검색 질의를 수신하는 단계와,
    상기 검색 질의와 관련된 결과 데이터 아이템들에 대한 상기 제1 티어를 검색하는 단계
    를 포함하는 데이터베이스 검색 방법.
  9. 제8항에 있어서,
    상기 제1 티어가 결과 데이터 아이템들의 임계치를 산출하지 못할 경우, 상기 검색 질의와 관련된 상기 결과 데이터 아이템들에 대한 상기 제2 티어를 검색하는 단계를 더 포함하는 데이터베이스 검색 방법.
  10. 제8항에 있어서,
    상기 제2 티어는 상기 제1 티어가 상기 결과 데이터 아이템들의 임계치를 산출하지 못할 경우에 검색되는 데이터베이스 검색 방법.
  11. 데이터 아이템들을 찾기 위해 데이터베이스를 크럴링하는 크럴러와,
    상기 데이터 아이템들을 수신하여 1차 인덱스를 생성하는 인덱서와,
    상기 데이터 아이템들의 각 랭킹에 기초하여, 상기 데이터 아이템들을 제1 및 제2 티어에 맵핑하는 문서 맵핑부와,
    상기 맵핑에 기초하여, 상기 1차 인덱스로부터 제1 및 제2 서브 인덱스를 생성하는 프로세서와,
    상기 제1 서브 인덱스를 저장하는 제1 검색 노드와,
    상기 제2 서브 인덱스를 저장하는 제2 검색 노드
    를 포함하는 데이터베이스 인덱싱 시스템.
  12. 데이터베이스의 검색을 가능하게 하는 검색 노드 클러스터에 있어서,
    복수의 열 및 복수의 행으로 논리적으로 배열된 검색 노드들과,
    동일한 정보를 포함하는 상기 열 중 어느 하나 내의 모든 검색 노드들과,
    상이한 정보를 포함하는 상기 행 중 어느 하나 내의 모든 검색 노드들을 포함하고,
    상기 행 내의 검색 노드들은 제1 및 제2 티어로 논리적으로 분할되며,
    상기 제1 티어 내의 검색 노드들은 상기 데이터베이스의 제1 부(portion)에 대한 인덱스를 포함하고,
    상기 제2 티어 내의 검색 노드들은 상기 데이터베이스의 제2 부에 대한 인덱스를 포함하고,
    상기 제1 및 제2 티어 내의 데이터는 상기 데이터베이스의 제1 및 제2 부 내의 정보의 각 랭킹에 기초하는 검색 클러스터 노드.
  13. 데이터 아이템들을 찾기 위해 데이터베이스를 크럴링하는 크럴러와,
    상기 데이터 아이템들을 수신하여 1차 인덱스를 생성하는 인덱서와,
    상기 데이터 아이템들의 각 랭킹에 기초하여, 상기 데이터 아이템들을 제1 티어 및 제2 티어에 맵핑하는 문서 맵핑부와,
    상기 맵핑에 기초하여, 상기 1차 인덱스로부터 제1 및 제2 서브 인덱스를 생성하는 프로세서와,
    상기 제1 서브 인덱스를 저장하는 제1 검색 노드와,
    상기 제2 서브 인덱스를 저장하는 제2 검색 노드와,
    질의를 수신하고, 상기 질의를 상기 제1 검색 노드에 포워딩하는 디스패처
    를 포함하는 검색 엔진.
  14. 제13항에 있어서,
    상기 제1 및 제2 서브 인덱스가 각각의 복수의 논리적 행 내에 논리적으로 추가 배열되도록, 상기 제1 서브 인덱스는 제1 복수의 열 내에 논리적으로 배열된 제1 복수의 검색 노드에 저장되고, 상기 제2 서브 인덱스는 제2 복수의 열 내에 논리적으로 배열된 제2 복수의 검색 노드 내에 저장되는 검색 엔진.
  15. 제13항에 있어서,
    상기 디스패처는, 상기 티어가 결과 데이터 아이템들의 임계치를 생성하지 않았을 경우, 상기 질의를 상기 제2 티어에 전송하는 검색 엔진.
  16. 제13항에 있어서,
    상기 디스패처는, 상기 제1 티어가 결과 데이터 아이템들의 임계치를 산출하지 않은 경우, 상기 질의를 상기 제2 티어로 전송하는 검색 엔진.
KR1020067009046A 2003-11-10 2004-11-09 계층적으로 저장된 인덱스들을 구비한 검색 엔진 KR100828232B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/705,641 2003-11-10
US10/705,641 US7240064B2 (en) 2003-11-10 2003-11-10 Search engine with hierarchically stored indices

Publications (2)

Publication Number Publication Date
KR20060083229A KR20060083229A (ko) 2006-07-20
KR100828232B1 true KR100828232B1 (ko) 2008-05-07

Family

ID=34552416

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067009046A KR100828232B1 (ko) 2003-11-10 2004-11-09 계층적으로 저장된 인덱스들을 구비한 검색 엔진

Country Status (7)

Country Link
US (1) US7240064B2 (ko)
EP (1) EP1682993A4 (ko)
JP (1) JP4699379B2 (ko)
KR (1) KR100828232B1 (ko)
CN (1) CN100585590C (ko)
HK (1) HK1119798A1 (ko)
WO (1) WO2005048069A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104112B1 (ko) * 2009-10-19 2012-01-13 한국과학기술정보연구원 차세대 대용량 저장장치의 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536713B1 (en) 2002-12-11 2009-05-19 Alan Bartholomew Knowledge broadcasting and classification system
US8707312B1 (en) 2003-07-03 2014-04-22 Google Inc. Document reuse in a search engine crawler
US7725452B1 (en) 2003-07-03 2010-05-25 Google Inc. Scheduler for search engine crawler
US7822661B1 (en) 2003-09-24 2010-10-26 SuperMedia LLC Information distribution system and method utilizing a position adjustment factor
US7516086B2 (en) * 2003-09-24 2009-04-07 Idearc Media Corp. Business rating placement heuristic
US7293016B1 (en) * 2004-01-22 2007-11-06 Microsoft Corporation Index partitioning based on document relevance for document indexes
US8055553B1 (en) 2006-01-19 2011-11-08 Verizon Laboratories Inc. Dynamic comparison text functionality
US7584175B2 (en) 2004-07-26 2009-09-01 Google Inc. Phrase-based generation of document descriptions
US7711679B2 (en) * 2004-07-26 2010-05-04 Google Inc. Phrase-based detection of duplicate documents in an information retrieval system
US7580929B2 (en) * 2004-07-26 2009-08-25 Google Inc. Phrase-based personalization of searches in an information retrieval system
US7599914B2 (en) 2004-07-26 2009-10-06 Google Inc. Phrase-based searching in an information retrieval system
US7536408B2 (en) 2004-07-26 2009-05-19 Google Inc. Phrase-based indexing in an information retrieval system
US7580921B2 (en) 2004-07-26 2009-08-25 Google Inc. Phrase identification in an information retrieval system
US7567959B2 (en) 2004-07-26 2009-07-28 Google Inc. Multiple index based information retrieval system
US7702618B1 (en) 2004-07-26 2010-04-20 Google Inc. Information retrieval system for archiving multiple document versions
US7987172B1 (en) * 2004-08-30 2011-07-26 Google Inc. Minimizing visibility of stale content in web searching including revising web crawl intervals of documents
US9189481B2 (en) * 2005-05-06 2015-11-17 John M. Nelson Database and index organization for enhanced document retrieval
US7685107B2 (en) * 2005-06-07 2010-03-23 International Business Machines Corporation Apparatus, system, and method for scanning a partitioned data set
US7831474B2 (en) * 2005-10-28 2010-11-09 Yahoo! Inc. System and method for associating an unvalued search term with a valued search term
US8554758B1 (en) 2005-12-29 2013-10-08 Amazon Technologies, Inc. Method and apparatus for monitoring and maintaining health in a searchable data service
US7739239B1 (en) * 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
US20070198504A1 (en) * 2006-02-23 2007-08-23 Microsoft Corporation Calculating level-based importance of a web page
EP1862916A1 (en) * 2006-06-01 2007-12-05 Microsoft Corporation Indexing Documents for Information Retrieval based on additional feedback fields
US7809704B2 (en) * 2006-06-15 2010-10-05 Microsoft Corporation Combining spectral and probabilistic clustering
US9015197B2 (en) 2006-08-07 2015-04-21 Oracle International Corporation Dynamic repartitioning for changing a number of nodes or partitions in a distributed search system
US7725470B2 (en) * 2006-08-07 2010-05-25 Bea Systems, Inc. Distributed query search using partition nodes
US20080033925A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed search analysis
US20080059486A1 (en) * 2006-08-24 2008-03-06 Derek Edwin Pappas Intelligent data search engine
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
US7689548B2 (en) * 2006-09-22 2010-03-30 Microsoft Corporation Recommending keywords based on bidding patterns
WO2008046098A2 (en) * 2006-10-13 2008-04-17 Move, Inc. Multi-tiered cascading crawling system
US7783689B2 (en) * 2006-10-26 2010-08-24 Microsoft Corporation On-site search engine for the World Wide Web
US8166045B1 (en) 2007-03-30 2012-04-24 Google Inc. Phrase extraction using subphrase scoring
US8086594B1 (en) 2007-03-30 2011-12-27 Google Inc. Bifurcated document relevance scoring
US7693813B1 (en) * 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US8166021B1 (en) 2007-03-30 2012-04-24 Google Inc. Query phrasification
US7925655B1 (en) 2007-03-30 2011-04-12 Google Inc. Query scheduling using hierarchical tiers of index servers
US7702614B1 (en) 2007-03-30 2010-04-20 Google Inc. Index updating using segment swapping
US20090055436A1 (en) * 2007-08-20 2009-02-26 Olakunle Olaniyi Ayeni System and Method for Integrating on Demand/Pull and Push Flow of Goods-and-Services Meta-Data, Including Coupon and Advertising, with Mobile and Wireless Applications
US8117223B2 (en) 2007-09-07 2012-02-14 Google Inc. Integrating external related phrase information into a phrase-based indexing information retrieval system
WO2009078729A1 (en) * 2007-12-14 2009-06-25 Fast Search & Transfer As A method for improving search engine efficiency
US8024285B2 (en) * 2007-12-27 2011-09-20 Microsoft Corporation Determining quality of tier assignments
US8103652B2 (en) * 2008-02-13 2012-01-24 Microsoft Corporation Indexing explicitly-specified quick-link data for web pages
US9135328B2 (en) * 2008-04-30 2015-09-15 Yahoo! Inc. Ranking documents through contextual shortcuts
US8606627B2 (en) * 2008-06-12 2013-12-10 Microsoft Corporation Sponsored search data structure
KR100953869B1 (ko) * 2008-08-04 2010-04-20 고려대학교 산학협력단 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법
US7733247B1 (en) * 2008-11-18 2010-06-08 International Business Machines Corporation Method and system for efficient data transmission with server side de-duplication
US20100153371A1 (en) * 2008-12-16 2010-06-17 Yahoo! Inc. Method and apparatus for blending search results
US20100287129A1 (en) * 2009-05-07 2010-11-11 Yahoo!, Inc., a Delaware corporation System, method, or apparatus relating to categorizing or selecting potential search results
CN102087646B (zh) * 2009-12-07 2013-03-20 北大方正集团有限公司 一种索引建立方法及装置
US20110258212A1 (en) * 2010-04-14 2011-10-20 Microsoft Corporation Automatic query suggestion generation using sub-queries
US9152683B2 (en) * 2010-10-05 2015-10-06 International Business Machines Corporation Database-transparent near online archiving and retrieval of data
CN101989301B (zh) * 2010-10-22 2012-05-23 复旦大学 一种支持多数据源的索引维护方法
US8370319B1 (en) * 2011-03-08 2013-02-05 A9.Com, Inc. Determining search query specificity
US9495453B2 (en) * 2011-05-24 2016-11-15 Microsoft Technology Licensing, Llc Resource download policies based on user browsing statistics
US8965921B2 (en) 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US8700583B1 (en) 2012-07-24 2014-04-15 Google Inc. Dynamic tiermaps for large online databases
US8862566B2 (en) 2012-10-26 2014-10-14 Equifax, Inc. Systems and methods for intelligent parallel searching
US9721000B2 (en) * 2012-12-20 2017-08-01 Microsoft Technology Licensing, Llc Generating and using a customized index
US9501506B1 (en) 2013-03-15 2016-11-22 Google Inc. Indexing system
US9483568B1 (en) 2013-06-05 2016-11-01 Google Inc. Indexing system
US9727648B2 (en) * 2014-12-19 2017-08-08 Quixey, Inc. Time-box constrained searching in a distributed search system
US9792286B2 (en) * 2014-12-31 2017-10-17 Rovi Guides, Inc. Systems and methods for obtaining customized search results by way of user-specific search indices
US10380207B2 (en) * 2015-11-10 2019-08-13 International Business Machines Corporation Ordering search results based on a knowledge level of a user performing the search
US11347798B2 (en) * 2016-12-29 2022-05-31 Ancestry.Com Operations Inc. Dynamically-qualified aggregate relationship system in genealogical databases
CN109062936B (zh) * 2018-06-15 2023-10-31 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN111581237B (zh) * 2019-02-15 2023-06-09 阿里巴巴集团控股有限公司 数据查询方法、装置、系统及电子设备
CN110990366B (zh) * 2019-12-04 2024-02-23 中国农业银行股份有限公司 一种提升基于es的日志系统性能的索引分配方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305208A (en) * 1990-09-27 1994-04-19 Kabushiki Kaisha Toshiba Database retrieval system for effectively displaying differences between elements of plural drawings
US5694593A (en) * 1994-10-05 1997-12-02 Northeastern University Distributed computer database system and method
US5787435A (en) * 1996-08-09 1998-07-28 Digital Equipment Corporation Method for mapping an index of a database into an array of files

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599910B1 (en) * 1993-11-16 2009-10-06 Hitachi, Ltd. Method and system of database divisional management for parallel database system
US5913215A (en) * 1996-04-09 1999-06-15 Seymour I. Rubinstein Browse by prompted keyword phrases with an improved method for obtaining an initial document set
US6360215B1 (en) * 1998-11-03 2002-03-19 Inktomi Corporation Method and apparatus for retrieving documents based on information other than document content
NO992269D0 (no) * 1999-05-10 1999-05-10 Fast Search & Transfer Asa S°kemotor med todimensjonalt skalerbart, parallell arkitektur
US6804675B1 (en) * 1999-05-11 2004-10-12 Maquis Techtrix, Llc Online content provider system and method
US6507837B1 (en) * 2000-06-08 2003-01-14 Hyperphrase Technologies, Llc Tiered and content based database searching
NO313399B1 (no) * 2000-09-14 2002-09-23 Fast Search & Transfer Asa Fremgangsmate til soking og analyse av informasjon i datanettverk
US6778977B1 (en) * 2001-04-19 2004-08-17 Microsoft Corporation Method and system for creating a database table index using multiple processors
US6928425B2 (en) * 2001-08-13 2005-08-09 Xerox Corporation System for propagating enrichment between documents
US7565367B2 (en) * 2002-01-15 2009-07-21 Iac Search & Media, Inc. Enhanced popularity ranking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305208A (en) * 1990-09-27 1994-04-19 Kabushiki Kaisha Toshiba Database retrieval system for effectively displaying differences between elements of plural drawings
US5694593A (en) * 1994-10-05 1997-12-02 Northeastern University Distributed computer database system and method
US5787435A (en) * 1996-08-09 1998-07-28 Digital Equipment Corporation Method for mapping an index of a database into an array of files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101104112B1 (ko) * 2009-10-19 2012-01-13 한국과학기술정보연구원 차세대 대용량 저장장치의 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체

Also Published As

Publication number Publication date
WO2005048069A2 (en) 2005-05-26
WO2005048069A3 (en) 2007-08-23
US20050102270A1 (en) 2005-05-12
EP1682993A2 (en) 2006-07-26
HK1119798A1 (en) 2009-03-13
KR20060083229A (ko) 2006-07-20
JP4699379B2 (ja) 2011-06-08
EP1682993A4 (en) 2009-06-24
CN100585590C (zh) 2010-01-27
CN101189602A (zh) 2008-05-28
US7240064B2 (en) 2007-07-03
JP2007529791A (ja) 2007-10-25

Similar Documents

Publication Publication Date Title
KR100828232B1 (ko) 계층적으로 저장된 인덱스들을 구비한 검색 엔진
EP1934823B1 (en) Click distance determination
US7028029B2 (en) Adaptive computation of ranking
Freeston The BANG file: a new kind of grid file
JP2007529791A5 (ko)
US8775410B2 (en) Method for using dual indices to support query expansion, relevance/non-relevance models, blind/relevance feedback and an intelligent search interface
Kumari et al. Comparative study of page rank and weighted page rank algorithm
Ghosh et al. Aid: An adaptive image data index for interactive multilevel visualization
Kim et al. Performance Comparison of the {\rm R}^{\ast}-Tree and the Quadtree for kNN and Distance Join Queries
Cambazoglu et al. Effect of inverted index partitioning schemes on performance of query processing in parallel text retrieval systems
Gil-Costa et al. Modelling efficient novelty-based search result diversification in metric spaces
Wheeldon et al. DbSurfer: A search and navigation tool for relational databases
Salzberg Access methods
Munir et al. ATUN-HL: Auto tuning of hybrid layouts using workload and data characteristics
Gupta et al. Comparative Study of Indexing Techniques In DBMS
KR20010109945A (ko) 비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법
Badan et al. Keyword-based access to relational data: To reproduce, or to not reproduce?
Voorhees Database Merging Strategies for Searching Public and Privated Collections
Bang et al. An efficient index structure for spatial databases
Eastman Handling incrementally specified Boolean queries: a comparison of inverted and signature file organizations
Bartere et al. Optimization of Query Processing Time Base on Materialized Sample View
Gudes et al. A survey of file organizations and performance
Attardi IXE at the TREC 2005 Terabyte Task.
Eng et al. Preference-driven query processing
Polo et al. Multiattribute Indexing with mQ-trees

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
J204 Request for invalidation trial [patent]
J121 Written withdrawal of request for trial
FPAY Annual fee payment
FPAY Annual fee payment
FPAY Annual fee payment

Payment date: 20150518

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 12