KR100971863B1 - 네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법 - Google Patents

네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100971863B1
KR100971863B1 KR1020050056700A KR20050056700A KR100971863B1 KR 100971863 B1 KR100971863 B1 KR 100971863B1 KR 1020050056700 A KR1020050056700 A KR 1020050056700A KR 20050056700 A KR20050056700 A KR 20050056700A KR 100971863 B1 KR100971863 B1 KR 100971863B1
Authority
KR
South Korea
Prior art keywords
documents
batch
request
document
document data
Prior art date
Application number
KR1020050056700A
Other languages
English (en)
Other versions
KR20060048655A (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 KR20060048655A publication Critical patent/KR20060048655A/ko
Application granted granted Critical
Publication of KR100971863B1 publication Critical patent/KR100971863B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Abstract

본 프로세스는 검색 질문들에 대한 인덱스 문서들을 배치하기 위해 데이터베이스내에 저장된 변경 로그를 포함하는 네트워크 사이트를 호스팅하는 서버 구조의 이점을 취한다. 사이트의 내용은 서버에서 인덱서로 벌크 형태로 배치 및 수송된다. 변경 로그는 사이트의 컨텐츠에 변경의 트랙을 유지한다. 인덱서는 변경 로그를 이용하여 인덱서에 갱신을 점진적으로 요구하고 변경을 배치하여 대역폭 이용 및 프로세서 오버헤드 비용이 감소되도록 한다.
네트워크 문서, 검색, 검색 엔진, 크롤링

Description

네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법{SYSTEM AND METHOD FOR BATCHED INDEXING OF NETWORK DOCUMENTS}
도 1은 본 발명의 일 예시적인 실시예에서 사용될 수도 있는 예시적인 컴퓨팅 디바이스를 나타낸 도면.
도 2는 본 발명이 동작하는 네트워크화된 시스템의 예시적인 구조를 나타낸 도면.
도 3은 본 발명에 따른 네트워크 문서들의 배치화된 인덱싱을 위한 서버 및 인덱서간의 예시적인 통신 시스템에 대한 기능적인 블럭도.
도 4는 본 발명에 따른 초기 크롤동안 예시적인 프로세스 배치 인덱싱의 논리적인 흐름도.
도 5는 본 발명에 따른 변경 로그의 기능적인 블럭도.
도 6은 본 발명에 따른 초기 크롤 동안 변경 로그의 사용을 초기화하기 위한 예시적인 프로세스의 논리적인 흐름도.
도 7은 본 발명에 따른 점진적인 크롤에 대한 예시적인 프로세스의 논리적인 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨팅 디바이스
102 : 프로세싱 유닛
104 : 시스템 메모리
105 : 구동 시스템
106 : 어플리케이션
107 : 프로그램 데이터
109 : 착탈식 기억 장치
110 : 비착탈식 기억 장치
120 : 배치화된 인덱싱
본 발명은 2000년 1월 28일자로 출원된 "Adaptive Web Crawling Using a Statistical Model"이라는 명칭의 일련번호 09/493,748을 갖는 특허 출원에 관한 것이다. 본 발명은 또한 "Monitoring Document Changes in a File System of Documents with the Document Change Information Stored in a Persistent Log"라는 명칭의 2000년 5월 23일자 미국특허 제6,067,541호에 관한 것이다. 관련 출원 및 특허는 본 특허 출원의 양수인에게 양도되어 있으며, 본원에 참조로서 포함된다.
네트워크 및 파일 시스템에서의 컨텐츠에 대한 검색은 많은 형태로 제공되었지만 대부분 공통적으로 다양한 검색 엔진에 의해 제공된다. 검색 엔진은 네트워크상의 문서들을 특정 키워드로 검색하고 키워드가 발견된 문서들의 리스트를 리턴시키는 프로그램이다. 종종, 네트워크상의 문서들은 네트워크를 "크롤링(crawling)"함으로써 일차적으로 식별된다.
네트워크를 크롤링하는 것은 네트워크 크롤링 프로그램 또는 크롤러(crawler)를 이용하여, 네트워크상에 존재하는 문서들을 식별하는 것이다. 크롤러는 네트워크 크롤를 수행하면서 하나 또는 그 이상의 네트워크 로케이션(locations)으로부터 문서들을 자동적으로 발견하고 수집하는 컴퓨터 프로그램이다. 크롤(crawl)은 크롤에 대한 시드(seeds)로서 작용하는 한 세트의 문서 어드레스들과 크롤의 범위를 정의하는 한 세트의 크롤 제한 규칙들을 크롤러에 제공함으로써 시작한다. 크롤러는 크롤하는 동안 검색된 문서들에서 참조된 링크 문서들의 네트워크 어드레스들을 반복적으로(recursively) 수집한다. 크롤러는 웹 사이트로부터 문서를 검색하고, 문서로부터의 수신된 문서 데이터를 처리하며, 후속하여 다른 프로그램들에 의해 처리될 데이터를 준비한다. 예를 들면, 크롤러는 인터넷 또는 인트라넷을 통해 이용가능한 문서들의 인덱스를 생성하기 위해 검색된 데이터를 이용할 수 있다. "검색 엔진"은 추후 인덱스를 이용하여 특정 기준을 만족시키는 문서들을 찾을(locate) 수 있다.
크롤에서 문서들을 검색하는 경우, 네트워크상의 각 문서에 대한 동작은 문서를 취득하고 문서들에 대한 기록들을 갖는 인덱스를 작성(populate)하도록 실행된다. 문서들에 대한 이들 라운드트립(roundtrip) 쿼리들은 대역폭 및 프로세서 활용면에서 다량의 오버헤드를 소비할 수 있다. 또한, 검색 엔진에 의해 제공될 정확한 결과들을 위해, 인덱스는 또한 네트워크상의 문서들과 관련하여 정확할 필요가 있다. 만일 네트워크상의 문서들이, 문서들을의 수정, 문서들을의 추가, 문서들의 삭제 또는 다른 동작들에 의해 변경되는 경우, 인덱스는 이러한 변경들을 반영하기 위해 갱신될 필요가 있다. 그러나, 네트워크의 크롤은 고가의 동작일 수 있다. 네트워크에 대해 앞뒤로 라운드트립한다는 것은 인덱서(indexer)와 네트워크 간에 이용가능한 대역폭을 혹사시킬 수 있다.
본 발명의 실시예들은 문서들에 대해 네트워크를 크롤링할 때 사용된 대역폭을 저감하는 웹 사이트의 배치화된(batched) 인덱싱을 위한 시스템 및 방법에 관한 것이다. 본 발명은 데이터베이스 또는 다른 저장소에 저장된 변경 로그(change log)를 포함하는 네트워크 사이트를 호스팅하는 서버 구조의 이점을 갖는다. 본 발명은 사이트의 컨텐츠를 배치(batch)하고 서버로부터 인덱서로 컨텐츠를 벌크 형태로 발송한다.
본 발명의 일 양상에 따르면, 배치 사이즈 제한은 문서들의 배치들을 인덱서에 전송하기 위해 설정된다. 각각의 문서들에 대응하는 메타데이터는 조사되며, 문서들은 배치 내에 포함되도록 선택된다. 다음으로, 문서들의 배치는 인덱서에 전달된다.
본 발명의 일 양상에 따르면, 네트워크에서의 모든 변경들은 변경 로드들에 기록된다. 변경 로그는 부가, 제거, 변형, 이동, 재명명(rename) 및 다른 문서 수정 동작들을 기록한다. 변경 로그는 어느 문서들이 변경되었는지를 표시한다. 일반적으로, 네트워크상의 대부분의 문서들은 2개의 크롤들 사이에서 변경되지 않지만, 변경 로그없이 최종 변형 시간을 취득하기 위해 각 문서에 대해 라운드트립하는 것이 크롤러에게 요구될 것이다. 다음으로, 변경은 특정 수의 변경을 배치하는 서비스 호출을 이용하여 변경 로그로부터 인덱서에 의해 검색된다. 서비스 호출은 변경된 각 문서를 검색하는 동작을 반복하는 것을 방지하고, 그 대신에 다수의 변경들이 한번에 인덱서에 전달될 수 있도록 한다. 따라서, 네트워크로의 전송이 요청되는 데이터베이스 퀴리들의 수를 감소시켜, 인덱스를 갱신하는 오버헤드를 효과적으로 감소시킨다.
본 발명은 이하에서, 본 발명을 실시하기 위한 구체적인 예시적인 실시예들을 예시로서 보여주며 그 일부를 형성하는 첨부된 도면들을 참조하여, 보다 구체적으로 기술될 것이다. 그러나, 본 발명은 많은 상이한 형태들로 구현될 수 있으며, 본 명세서에서 설정된 실시예들에 국한되는 것으로서 이해되지 않아야 하며; 더욱이, 이들 실시예들은, 이 개시가 철저하고 완벽하여 당해 기술 분야의 통상의 지식을 가진 자에게 본 발명의 범위가 완벽히 전달되도록 제공된다. 특히, 본원 발명은 방법들 또는 디바이스로서 구현될 수도 있다. 따라서, 본 발명은 전체적으로 하드웨어인 실시예, 전체적으로 소프트웨어인 실시예 또는 소프트웨어 및 하드웨어 측면을 결합한 실시예의 형태를 취할 수도 있다. 따라서, 이하의 상세한 설명은 제한적 의미로 이해되지 않아야 한다.
예시적인 구동 환경
도 1을 참조하면, 본 발명의 실행하기 위한 하나의 예시적인 시스템은 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스(100)는 클라이언트, 서버, 이동 기기, 또는 임의의 다른 컴퓨팅 디바이스로서 구성될 수 있다. 가장 기본적인 구성에서, 컴퓨팅 디바이스(100)는 통상적으로 적어도 하나의 프로세싱 유닛(102)과 시스템 메모리(104)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 타입에 따라, 시스템 메모리(104)는 휘발성(예를 들면, RAM), 불휘발성(예를 들면, ROM, 플래쉬 메모리 등) 또는 이들 2개의 일부 조합일 수도 있다. 시스템 메모리(104)는 통상적으로 구동 시스템(105), 하나 또는 그 이상의 어플리케이션(106)을 포함하며 프로그램 데이터(107)를 포함할 수 있다. 일 실시예에서, 어플리케이션(106)은 본 발명의 기능을 수행하기 위한 배치화된 인덱싱 어플리케이션(120)을 포함한다. 이러한 기본적인 구성은 점선(108)내에 컴포넌트들로 도 1에 도시되어 있다.
컴퓨팅 디바이스(100)는 추가적인 특징 또는 기능을 가질 수 있다. 예를 들면, 컴퓨팅 디바이스(100)는 또한 예를 들면, 자기 디스크, 광 디스크 또는 테이프와 같은 추가적인 데이터 저장 디바이스(착탈식(removable) 및/또는 비착탈식)를 포함할 수 있다. 이러한 추가적인 기억 장치는 착탈식 기억 장치(109) 및 비착탈식 기억 장치(110)으로 도 1에 도시되어 있다. 컴퓨터 기억 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다. 시스템 메모리(104), 착탈식 기억 장치(109) 및 비착탈식 기억 장치(110)는 컴퓨터 기억 매체의 모든 예들이다. 컴퓨터 기억 매체는, RAM, ROM, EEPROM, 플래쉬 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 디바이스, 또는 원하는 정보를 저장하는데 사용될 수 있으며 컴퓨팅 디바이스(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 국한되지는 않는다. 이러한 임의의 컴퓨터 저장 매체는 디바이스(100)의 일부일 수 있다. 또한, 컴퓨팅 디바이스(100)는 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등과 같은 입력 디바이스(들)(112)를 가질 수도 있다. 또한, 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(114)가 포함될 수 있다.
또한, 컴퓨팅 디바이스(100)는, 디바이스가, 예를 들어 네트워크를 통해 다른 컴퓨팅 디바이스들(118)과 통신할 수 있도록 하는 통신 접속들(116)을 포함한다. 통신 접속(116)은 통신 매체의 일례이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 캐리어 파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호에서의 다른 데이터에 의해 구현될 수 있으며, 임의의 정보 전송 매체를 포함한다. 용어 "변조된 데이터 신호"는, 하나 이상의 그 특성이 정보를 신호에 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 다이렉트-유선 접속과 같은 유선 매체와, 음파, RF, 적외선과 같은 무선 매체 및 다른 무선 매체를 포함하지만, 이에 국한되지 않는다. 본 명세서에서 사용되는 용어 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체를 모두 포함한다.
배치화된 인덱싱을 위한 예시적인 실시예
이하의 설명 및 청구항에서 "문서"라는 용어는, 네트워크 문서, 파일, 폴더, 웹 페이지 및 기타 리소스와 같은 네트워크의 크롤 또는 쿼리 검색의 결과로서 리턴될 수 있는 임의의 가능한 리소스를 지칭한다.
도 2는 본 발명이 동작하는 네트워크화된 시스템의 예시적인 구조를 나타낸다. 서버(204)는 서버상에서 실행되는 크롤러(206)를 포함한다. 크롤러(206)는, 도 2에 도시된 원격 서버(218)와 같은, 네트워크(216)에 접속되는 하나 또는 그 이상의 컴퓨팅 디바이스상에 분배되는 문서들을 검색한다. 네트워크(216)는 근거리 통신망, 원거리 통신망 또는 서버(204)가 원격 서버(218)과 같은 원격 컴퓨팅 디바이스들과 직접적 또는 간접적으로 통신하도록 허용하는 네트워크들의 조합일 수도 있다.
크롤러(206)는 문서들(222, 224)을 찾기 위해 네트워크(216)에 접속된 원격 서버(218)를 검색("크롤")한다. 크롤러(206)는 문서들을 문서 데이터로서 검색한다. 문서들(222, 224)로부터의 문서 데이터는 다양한 방식으로 사용될 수 있다. 예를 들면, 크롤러(206)는 문서 데이터를 인덱서(208)에 보낼(pass) 수 있다. 인덱서(208)는 문서들의 인덱스(210)를 보유하는 컴퓨터 프로그램이다. 인덱스(210)에 저장된 정보의 타입은 인덱서(208)의 복잡도에 의존한다.
본 발명에 따르면, 인덱서(208)와 원격 서버(218)는 웹 서비스(250)에 따라 동작하도록 구성될 수 있다. 예를 들면, 원격 서버(218)는 웹 서비스(250)를 포함하도록, 워싱턴주, 레드몬드에 위치한 마이크로소프트사에 의해 생산된 Windows SharePoint Services 기술에 따라 구성될 수 있다. 따라서, 웹 서비스 호출은 원격 서버(218)상에 위치한 문서들에 대해 웹 서비스(25)에 질의하기 위해 활용될 수 있다. 그 후, 웹 서비스(250)는 다음으로 원격 서버(218)상의 문서들과 관련된 데이터베이스에 의해 노출되는 API(application programming interface)와 통신한다. 어플리케이션 프로그래밍 인터페이스는 데이터베이스에 존재하는 문서들을 열거하고 문서들에 대응하는 문서 데이터가 리턴되고 인덱서(208)에 의해 인덱싱되도록 한다. 따라서, 원격 서버(218)로의, 및 이로부터의 라운드트립은, 단일 웹 서비스 호출로부터 문서 데이터들의 다수의 세트의 리턴으로 인해 현저하게 감소한다. 결과들의 리턴은 효과적으로 함께 "배치(batch)"된다. 다른 실시예들은 원격 서버(218)상의 다른 상주 코드를 활용하거나 네트워크 문서들의 배치화된 인덱싱의 제공 시에 웹 서비스 호출 이외의 다른 통신 프로토콜을 활용할 수도 있다. 인덱서와 웹 서비스간의 통신에 대한 보다 상세한 설명은 이하의 도 3의 논의에서 제공된다.
개인용 컴퓨터와 같은 클라이언트 컴퓨터(214)는 네트워크(212)에 의해 서버에 접속된다. 네트워크(212)는 근거리 통신망, 원거리 통신망 또는 네트워크들의 조합일 수 있다. 네트워크(212)는 네트워크(216)와 동일한 네트워크이거나 상이한 네트워크일 수 있다. 클라이언트 컴퓨터(214)는 문서들을 검색하고 사용자에게 표시하는 "브라우저"(215)와 같은 컴퓨터 프로그램을 포함한다.
클라이언트(214)에서의 사용자가 하나 이상의 문서들을 검색하고자 할 때, 클라이언트 컴퓨터(214)는 검색 엔진(230)에 검색 요청을 전송한다. 검색 엔진(230)은 검색 요청에 관련될 수 있는 문서들을 찾기 위해 관련된 인덱스(210)를 조사한다. 검색 엔진(230)은 이들 문서들의 리스트를 클라이언트 컴퓨터(214)에서 브라우저(215)로 리턴할 수 있다. 사용자는 문서들의 리스트를 조사하고 원격 서버(218)와 같은 원격 컴퓨팅 디바이스들로부터 하나 이상을 검색할 수 있다.
다른 실시예에서, 서버(204)는 그 자체가 크롤러(206)에 의해 액세스되는 문서들(232, 234)을 포함할 수 있다. 또한, 크롤러(206), 인덱서(208) 및 검색 엔진(230)은 서로 다른 컴퓨터들 상에 상주할 수 있다. 또한, 브라우저(215)와 크롤러(206)는 단일 컴퓨터상에 상주할 수 있다.
도 3은, 본 발명에 따른 네트워크 문서들의 배치화된 인덱싱을 위한 인덱서와 서버간의 예시적인 통신 시스템에 대한 기능 블럭도를 도시한다. 시스템(300)은 인덱서(302) 및 서버(310)를 포함한다. 서버(310)는 프론트 엔드(front end)(312) 및 데이터베이스(314)를 포함한다. 프론트 엔드(312)는 웹 서비스(320)와 오브젝트 모델(322)을 포함한다.
인덱서(302)는 네트워크상에 위치한 문서들의 인덱스를 보유한다. 인덱서는 서버(310)와 통신하는 것으로 도시되어 있으나, 다른 중간 기능 블럭들도 인덱서(302)와 서버(310) 간의 통신을 용이하게 할 수 있다. 예를 들면, 도 2는 네트워크(216)를 통해 인덱서(208)과 원격 서버(218)간의 통신을 제공하는 크롤러(206)을 도시한다. 적어도 하나의 실시예에서, 중간 기능 블럭들은 본 발명의 기능에 영향을 미치지 않으므로 여기에 도시되지 않는다.
인덱서(302)는 인덱스를 작성(populating)하기 위한 문서 데이터를 획득하기 위해 웹 서비스(320)와 통신한다. 웹 서비스(320)는 데이터베이스(314)로부터 문서 데이터를 요청하기 위해 오브젝트 모델(322)과 교대로 통신한다. 일 실시예에서, 데이터베이스(314)는 도시된 계층 구조(330)에 따라 편성된다. 계층 구조(330)는 서브사이트들을 포함하는 사이트로 구성된다. 각 서브사이트는, 다른 컨테이너들 또는 문서들을 더 포함할 수 있는 하나 이상의 컨테이너를 포함한다. 일 실시예에서, 계층 구조(330)는 컴퓨팅 디바이스의 파일 시스템과 유사하게 구성된다.
초기 크롤의 경우, 인덱서(302)는 서버(310)와 관련된 사이트를 알고 있으며 인덱서(302)는 사이트에 관한 정보를 요청하는 웹 서비스(320)에 웹 서비스 호출을 제공한다. 요청은 웹 서비스(320)에 의해 오브젝트 모델(322)로 전달된다. 오브젝트 모델(322)은 데이터베이스(314)에 포함된 사이트의 서브사이트들, 문서들 및 컨테이너들 각각에 대해 오브젝트를 제공한다. 다른 실시예에서, 데이터베이스(314)의 다른 구조들(structures)은 또한 오브젝트 모델(322)에 의해 제공된 오브젝트들(예를 들면, 리스트들, 리스트 아이템들, 문서 라이브러리들 등)을 가질 수도 있다. 오브젝트 모델(322)은 서브사이트 오브젝트들의 리스트를 웹 서비스(320)에 리턴하며, 이는 그 리스트를 URLs(Uniform Resource Locators)의 리스트로서 인덱서(302)에 전파시킨다. 일 실시예에서, 서브사이트들의 리스트는 서브사이트들의 수가 특정 수 이하일 때 본 발명의 배치화된 기능에 따라 인덱서에 제공되지 않는다.
서브사이트들의 리스트를 이용하여, 인덱서(302)는, 사이트에 관한 정보를 요청하는 이전의 웹 서비스 호출과 유사하게, 서브사이트들 각각에 관한 정보를 요청하는 웹 서비스 호출들을 제공한다. 다시, 요청은 웹 서비스(320)에 의해 오브젝트 모드(322)로 전달된다. 오브젝트 모델(322)은 요청이 이루어진 서브사이트내의 컨테이너들의 리스트를 인덱서(302)로 리턴한다. 일 실시예에서, 서브사이트들의 리스트는, 서브사이트들의 수가 특정 수 이하일 때 본 발명의 배치화(batching) 기능에 따라 인덱서에 제공되지 않는다. 데이터베이스 계층 구조에서의 컨테이너들, 문서들 또는 다른 오브젝트 관련 구조들의 배치화는 오브젝트 관련 구조들에 관한 메타데이터를 조사하는 것과 인덱서(302)로의 전송을 위해 배치 단위의 구조들을 수집하는 것을 포함한다. 사이트의 배치 인덱싱을 위한 예시적인 프로세스는 이하의 도 4의 논의에서 기술된다.
도 4는 본 발명에 따른 초기 크롤동안 예시적인 프로세스 배치 인덱싱의 논리 흐름도를 도시한다. 프로세스(400)는, 인덱싱을 위한 문서 데이터를 요청하는 네트워크 사이트를 호스팅하는 서버로, 웹 서비스 호출이 인덱서에 의해 전송되는 블럭(402)에서 시작한다.
블럭(404)에서, 웹 서비스는 N개까지의 문서들에 대한 문서 메타데이터를 취득하며, 여기서 N은 구체화된 한계(예컨대, 1000개의 아이템)에 따라 설정된다. 문서 메타데이터는 데이터베이스로부터 웹 서비스에 의해 검색된다. 다른 실시예에서, 아이템들에 대한 제한은 다른 제한으로 설정될 수 있거나, 관련된 제한을 갖지 않을 수 있다. 메타데이터는, 문서 확장자, 문서 크기 및 인덱서로 전송하기 위한 문서들을 효과적으로 배치화하는 것을 보조하는 기타 메타데이터를 포함한다. 다른 실시예에서, 컨테이너는 N개의 아이템들보다 클 수 있다. 컨테이너가 N개의 아이템 이상을 포함한다면, 웹 서비스는 다음 웹 서비스 콜에서 통과될 쿠키를 리턴하여 웹 서비스가 데이터베이스로부터 다음 N개의 문서들을 취득할 것을 알도록 한다. 일단 웹 서비스가 문서 메타데이터를 검색하면, 프로세싱은 블럭(406)에서 계속된다.
블럭(406)에서, 크롤러는 웹 서비스에 의해 검색된 메타데이터를 처리하고 메타데이터에 관련된 문서들을 배치 크기 제한에 따르는 배치들로 그룹화한다. 일 실시예에서, 배치 크기 제한은 바이트 측면에서의 배치의 크기(예를 들면, 50MB)와 연관된다. 다른 실시예에서, 배치 크기 제한은 배치에 포함된 문서들의 수와 관련된다. 또 다른 실시예에서, 인덱서는 최대 크기 제한을 설정하고, 웹 서비스는 문서들을 배치하기 위한 최대치보다 작은 효율적인 크기를 결정한다. 효율적인 크기에 대한 한가지 결정은, 인덱서와 서버 간의 대역폭 활용을 최소화하면서 데이터베이스에 대한 질의들의 수가 최소화되는 배치 크기에 대응한다.
일 실시예에서, 그 확장자(예컨대, mpg)에 따른 소정 타입인 문서는 배치에서 제외될 수 있다. 예를 들면, 검색 질의에 대해 의미있는 결과들을 제공하기 위해 가장 먼저 렌더링되어야 하는 임의의 문서들은, 배치화된 인덱싱으로부터 이득이 없기 때문에 문서들이 렌더링된 후 다른 수단을 통해 취득된다. 영화와 같은 다른 문서들은 또한 검색 엔진을 이용한 키워드 검색에 대한 의미 있는 결과를 제공하지 않을 수 있으므로, 배치에서 또한 제외된다. 다른 실시예에서, 문서의 크기는 배치 인덱싱에서 제외될 수 있다. 예를 들면, 문서의 크기가 배치 크기 제한을 초과할 경우(예를 들면, 50k 초과), 문서는 다른 수단(예를 들면, 또 다른 "문서 취득" 동작)에 의해 검색된다. 일단 문서들이 배치화되면, 프로세싱은 블럭(408)으로 진행한다.
블럭(408)에서, 문서들의 배치는 웹 서비스로부터 크롤러에 의해 요청된다. 웹 서비스는 데이터베이스로부터 문서들의 배치를 취득하여 크롤러에 문서들을 리턴한다. 일단 크롤러가 문서들의 배치를 수신하면, 프로세싱은 결정 블럭(410)으로 이동한다.
결정 블럭(410)에서, 검색된 문서 메타데이터에 대응하여 크롤러에 의해 추가적인 배치들이 검색될 필요가 있는지 여부를 결정한다. 추가적인 배치가 검색될 필요가 있다면, 프로세싱은 블럭(408)으로 리턴된다. 그러나, 추가적인 배치들이 검색될 필요가 없다면, 프로세싱은 블럭(412)에서 계속된다.
블럭(412)에서, 검색된 배치들에 대응하는 문서들은 크롤러로부터 인덱서로 전달되어 문서들이 인덱스된다. 따라서, 인덱스는 문서들에서의 변경에 따라 갱신된다. 일단 문서들이 전달되면, 프로세싱은 결정 블럭(414)에서 계속된다.
결정 블럭(414)에서, N개의 문서들에 대한 메타데이터를 요청한 웹 서비스 호출과 쿠키가 관련되는지의 여부를 결정한다. 쿠키는, 특정 컨테이너의 문서들이, 컨테이너 내의 문서들의 수가 N보다 클 경우, 인덱싱을 위한 동일한 컨테이너의 다른 문서들과 관련됨을 보장한다. 쿠기와 문서들 간에 관련이 있다면, 프로세싱은, 쿠키와 관련된 N개의 문서들의 다음의 세트에 대해 프로세스(400)가 반복되는 블럭(404)으로 리턴된다. 그러나, 쿠기와 문서들 간에 관련이 없다면, 프로세싱은 프로세스(400)이 종료하는 블럭(416)으로 진행한다.
프로세스(400)는 문서들의 단일 컨테이너에 관련되는 본 발명을 위한 초기 배치 인덱싱 프로세스를 기술한다. 문서들의 많은 컨테이너들은 네트워크상에 존재할 수 있으며, 프로세스(400)는 네트워크상의 모든 문서들을 배치 인덱싱할 필요가 있을 때마다 반복될 수 있다.
도 5는 본 발명에 따른 변경 로그의 기능적인 블럭도를 나타낸다. 변경 로그(500)는, 네트워크상의 문서들에 변경이 발생할 때 변경 로그가 변경 기록으로 효과적으로 채워지도록(filled), 구성된 다수의 변경 기록(예를 들면, 502)을 포함한다. 임의의 포인트들(예를 들면, 504, 506)에서, 새로운 크롤이 발생할 것이고, 갱신된 인덱스에 반영된 최종 변경 기록과 관련된 인덱스 및 변경 ID(예를 들면, 514)의 갱신이 기록된다. 일 실시예에서, 변경 로그(500)는 서버의 데이터베이스(예를 들면, 도 3의 데이터베이스(314))에 저장된다.
각 변경 기록(예를 들면, 502)은 이벤트 타입(510), 오브젝트 식별(512) 및 변경 ID(즉, 토큰(token))(514)를 포함한다. 이벤트 타입(510)은 변경 기록에 대응하여 발생한 변경 이벤트의 타입을 나타낸다. 일부 이벤트 타입들은 추가, 제거, 변형, 이동 및 재명명(rename) 이벤트들을 포함한다, 이들 이벤트들은 오브젝트 식별(512)에 따라 특정 문서와 관련된다. 오브젝트 식별(512)은 변경된 문서와 관련된 특정 오브젝트를 식별하기에 충분한 식별 정보를 나타낸다. 오브젝트 식별(512)에 포함된 일부 예시적인 정보는 문서 ID, 컨테이너 ID, 오브젝트 ID 및/또는 변경된 문서에 대응하는 오브젝트를 식별하기 위한 다른 식별자 정보를 포함한다. 변경 ID(514)는 변경 기록 자체를 식별하고, 현재 갱신 프로세스가 변경 로그(500)에서 어디에 있는지에 대한 표시를 제공한다.
최종 갱신이 발생한 변경 로그에서의 포인트들(예를 들면, 504 및 506)은 최종 변경 ID 또는 현재 변경 ID에 대해 식별될 수 있다. 최종 변경 ID는 인덱스에 반영되었던 최종 변경에 대한 변경 로그의 위치의 식별을 나타낸다. 현재 변경 ID는, 변경 로그가 그 위치에 관해 질의를 받은 시점에서의 변경 로그의 현재 위치의 식별을 나타낸다. 최종 변경 ID(예를 들면, 504)와 현재 변경 ID(예를 들면, 506) 사이에 발생한 변경들의 배치들은, 인덱서에 의해 요청될 때, 인덱스를 갱신하기 위해 분해된다. 배치 인덱싱을 위해 변경 로그를 이용하기 위한 프로세스들은, 이하의 도 6 및 도 7의 논의에서 설명된다.
도 6은, 본 발명에 따르는, 초기 크롤 동안 변경 로그의 이용을 초기화하기 위한 예시적인 프로세스의 논리 흐름도를 나타낸다. 프로세스(600)는 인덱서가 초기 크롤을 시작하는 블럭(602)에서 시작한다. 프로세싱은 블럭(604)에서 계속된다.
블럭(604)에서, 웹 서비스는 변경 로그에서의 현재 위치에 대해 인덱서로부터 요청을 수신한다. 프로세싱은 블럭(606)에서 계속된다.
블럭(606)에서, 웹 서비스는 변경 로그에서의 현재 위치에 대한 요청을 데이터베이스로 전달하며, 여기서 요구는 변경 로그에서의 최종 변경 ID에 대한 요구에 대응한다. 일단 요구가 웹 서비스에 의해 전달되면, 프로세싱은 블럭(608)으로 이동한다.
블럭(608)에서, 변경 로그로부터의 최종 변경 ID가 웹 서비스에 의해 인덱서로 전달된다. 인덱서는, 추후 증분 크롤(incremental crawls)에 사용하기 위해 최종 변경 ID를 저장한다. 증분 크롤 프로세스는, 이하의 도 7의 논의에서 기술된다. 일단 최종 변경 ID가 인덱서에 의해 저장되면, 프로세싱은 프로세스(600)가 종료하는 블럭(610)으로 이동한다.
일 실시예에서, 다수의 변경 로그들은 다수의 데이터베이스에 대응하는 서버상에 있을 수 있다. 다수의 변경 로그들에 대해, 최종 변경 ID들은 인덱서로 리턴되기 전에 통합된다.
도 7은 본 발명에 따른 증분 크롤에 대한 예시적인 프로세스의 논리 흐름도를 도시한다. 프로세스(700)는 인덱서가 증분 크롤을 개시하는 블럭(702)에서 시작한다. 프로세싱은 블럭(704)으로 이어진다.
블럭(704)에서, 변경된 컨텐츠에 대해 인덱서로부터 웹 서비스에 의해 요청이 수신된다. 요청은 인덱서에 의해 이전에 저장되었던 최종 변경 ID를 포함한다(상술한 도 6 참조). 일단 요청이 웹 서비스에 의해 수신되면, 프로세싱은 블럭(706)으로 이어진다.
블럭(706)에서, 요청은, 변경 로그의 위치가 최종 변경 ID에 대응된 때부터 변경 로그에서 발생한 변경에 대한 요청으로서, 데이터베이스에 전달된다. 일단 이 요청이 데이터베이스에 의해 수신되면, 프로세싱은 블럭(708)으로 이어진다.
블럭(708)에서, 웹 서비스는 최종 변경 ID 이후로 발생한 변경들의 제1 배치를 검색한다. 일 실시예에서, 변경들의 배치는 최종 변경 ID 이후에 등장하는 처음 천 개의 변경 기록들에 대응한다. 웹 서비스는 또한 현재 변경 ID를 검색한다. 일단 변경들의 배치 및 현재 변경 ID가 검색되면, 프로세싱은 블럭(710)으로 이어진다.
블럭(710)에서, 변경 기록들의 배치는 변경된 컨텐츠를 검색하기 위해 소트(sort)된다. 예를 들면, 동일 컨테이너 내의 문서들에 발생한 변경들은 함께 그룹화되도록 소트된다. 변경된 컨텐츠를 검색하기 위한 변경 기록들을 소트하는 것은 오브젝트 모델에 의해 데이터베이스에 대한 쿼리들의 수를 감소시킨다. 일단 변경 기록들이 소트되고 변경 컨텐츠가 검색되면, 프로세싱은 블럭(712)으로 이동한다.
블럭(712)에서, 변경 로그로부터 검색된 변경 기록들의 배치에 대응하는 문서들에서의 배치화된 변경들은 인덱서에 전달된다. 또 인덱서에 전달되는 것은 인덱서에 의해 저장되는 현재 변경 ID이다. 인덱서는 다음 증분 크롤을 위해 현재 변경 ID를 최종 변경 ID로서 이용한다. 일단 현재 변경 ID가 인덱서에 의해 저장되고 인덱스가 전달된 변경 컨텐츠에 따라 갱신되었다면, 프로세싱은 프로세스(700)가 종료하는 블럭(714)으로 이동한다.
일 실시예에서, 다수의 변경 로그들은 다수의 데이터베이스에 대응하는 서버상에 있을 수 있다. 다수의 변경 로그들의 경우, 현재 변경 ID들과 변경된 컨텐츠는 인덱서에 리턴되기 전에 통합된다.
본 발명은 네트워크에 전송되는데 필요한 다수의 데이터베이스 질문들을 감소시키고, 인덱스를 갱신하는 오버헤드를 효과적으로 감소시킬 수 있는 이점이 있다.
상술한 설명, 예제 및 데이터는 본 발명의 합성의 이용 및 제조의 완변한 설명을 제공한다. 본 발명의 많은 실시예들이 본 발명의 사상 및 범위로부터 동떨어짐없이 이루어질 수 있기 때문에, 본 발명은 이하 첨부된 청구항들에 속한다.

Claims (25)

  1. 저장소(repository) 내의 문서들 - 상기 문서들은 사이트들, 서브사이트들 및 컨테이너들을 포함하는 계층 구조로 편성됨(organized) - 의 배치 인덱싱(batch indexing)을 위한 컴퓨터 실행 방법으로서,
    상기 계층 구조 내의 사이트에 관한 정보에 대한 제1 요청을 송신하는 단계;
    상기 제1 요청에 응답하여, 상기 사이트 내에 포함된 복수의 서브사이트의 리스트를 수신하는 단계;
    상기 서브사이트들의 리스트 내의 서브사이트들 중 하나에 관한 정보에 대한 제2 요청을 송신하는 단계;
    상기 제2 요청에 응답하여, 상기 서브사이트들 중 하나에 포함된 컨테이너들의 리스트를 수신하는 단계;
    상기 컨테이너들의 리스트 내의 컨테이너들 중 하나에 저장된 제1 그룹의 문서들에 대한 문서 데이터의 배치에 대한 제3 요청을 송신하는 단계 - 상기 제3 요청은 상기 문서 데이터의 배치 및 상기 컨테이너들 중 상기 하나를 식별하는 메타데이터를 포함함 - ;
    상기 제3 요청에 응답하여, 상기 제1 그룹의 문서들에 대한 상기 문서 데이터의 배치를 수신하는 단계 - 상기 문서 데이터는 상기 사이트 내의 문서들에 가해진 최종 변경을 식별하는 최종 변경 식별자를 포함함 - ;
    상기 제1 그룹의 문서들의 상기 문서 데이터를 인덱싱하는 단계;
    상기 제1 그룹의 문서들의 상기 문서 데이터를 인덱싱한 결과를 저장하는 단계;
    상기 사이트 내에 편성된 문서들에 가해진 변경들에 대한 제4 요청을 송신하는 단계 - 상기 제4 요청은 상기 최종 변경 식별자를 포함함 - ;
    상기 제4 요청에 응답하여, 상기 최종 변경 식별자에 기초하여 변경된 문서 데이터의 배치를 수신하는 단계 - 상기 변경된 문서 데이터의 배치는 상기 제1 그룹의 문서들 중 적어도 하나의 문서에 대한 변경된 컨텐츠를 포함함 - ;
    상기 변경된 컨텐츠를 포함하는 상기 변경된 문서 데이터의 배치를 인덱싱하는 단계; 및
    상기 변경된 문서 데이터의 배치를 인덱싱한 결과를 저장하는 단계
    를 포함하는 배치 인덱싱을 위한 컴퓨터 실행 방법.
  2. 제1항에 있어서,
    상기 제1 그룹의 문서들의 상기 문서 데이터의 크기를 제한하는 배치 크기 제한을 설정하는 단계를 더 포함하는 배치 인덱싱을 위한 컴퓨터 실행 방법.
  3. 제1항에 있어서,
    상기 저장소 내의 문서들 중 어느 것이 상기 제1 그룹의 문서들을 포함하는지를 결정하기 위해 상기 저장소 내의 각각의 문서에 대응하는 메타데이터를 취득하는 단계를 더 포함하는 배치 인덱싱을 위한 컴퓨터 실행 방법.
  4. 제3항에 있어서,
    상기 저장소 내의 각각의 문서에 대응하는 메타데이터는 상기 문서의 크기 및 상기 문서의 확장자(extension) 중 하나 이상을 포함하는, 배치 인덱싱을 위한 컴퓨터 실행 방법.
  5. 제1항에 있어서,
    상기 컨테이너들의 리스트 내의 컨테이너들 중 상기 하나가 상기 제1 그룹의 문서들보다 더 많은 수의 문서들을 포함할 때, 상기 제1 그룹의 문서들과 쿠키를 관련시키는 단계를 더 포함하는 배치 인덱싱을 위한 컴퓨터 실행 방법.
  6. 저장소 내의 문서들의 배치 인덱싱을 위한 시스템으로서,
    컴퓨터 실행가능 명령들을 실행하도록 구성된 서버로 구성된 컴퓨팅 디바이스를 포함하고,
    상기 컴퓨터 실행가능 명령들은 실행시에,
    상기 저장소에 문서들을 저장하는 단계 - 상기 문서들은 사이트들, 서브사이트들 및 컨테이너들을 포함하는 계층 구조로 편성됨 - ;
    상기 계층 구조 내의 사이트에 관한 정보에 대한 제1 요청을 수신하는 단계;
    상기 사이트 내에 포함되는 복수의 서브사이트의 리스트를 송신하는 단계;
    상기 서브사이트들의 리스트 내의 서브사이트들 중 하나에 관한 정보에 대한 제2 요청을 수신하는 단계;
    상기 서브사이트들 중 상기 하나에 포함되는 컨테이너들의 리스트를 송신하는 단계;
    상기 컨테이너들의 리스트 내의 컨테이너들 중 하나에 저장된 문서들의 제1 배치에 대한 제3 요청을 수신하는 단계 - 상기 제3 요청은 상기 문서들의 제1 배치를 식별하는 메타데이터를 포함함 - ;
    인덱서에 상기 문서들의 제1 배치를 전달하는 단계;
    상기 사이트 내에 편성된 문서들에 가해진 변경들에 대한 제4 요청을 수신하는 단계 - 상기 제4 요청은 상기 사이트 내에 편성되고 이전에 상기 인덱서에 송신된 문서들에 가해진 최종 변경을 식별하는 최종 변경 식별자를 포함함 - ;
    상기 최종 변경 식별자에 기초하여, 상기 사이트 내에 편성된 문서들에 가해진 변경들에 대한 이전 요청 이래로 변경된 문서들의 리스트를 변경 로그로부터 취득하는 단계;
    상기 저장소로부터 변경된 문서 데이터의 배치를 취득하는 단계 - 상기 변경된 문서 데이터의 배치는 상기 저장소에 저장된 적어도 하나의 문서에 대한 변경된 컨텐츠를 포함함 - ; 및
    상기 변경된 컨텐츠를 포함하는 상기 변경된 문서 데이터의 배치를 상기 인덱서에 전달하는 단계
    를 포함하는 프로세스를 수행하는, 배치 인덱싱을 위한 시스템.
  7. 제6항에 있어서,
    상기 서버는, 실행시에, 상기 변경 로그의 최종 갱신 위치를 기록하는 단계를 수행하는 컴퓨터 실행가능 명령들을 실행하도록 더 구성되고,
    상기 변경 로그는 상기 변경된 문서 데이터의 배치에 대응하는 기록들을 포함하는, 배치 인덱싱을 위한 시스템.
  8. 제7항에 있어서,
    상기 변경된 문서 데이터의 배치에 대응하는 기록들은 각각 이벤트 타입, 변경 식별자 및 문서 식별 중 적어도 하나를 포함하는, 배치 인덱싱을 위한 시스템.
  9. 제6항에 있어서,
    상기 서버는, 실행시에, 상기 문서들의 제1 배치의 크기를 제한하는 배치 크기 제한을 설정하는 단계를 수행하는 컴퓨터 실행가능 명령들을 실행하도록 더 구성되는, 배치 인덱싱을 위한 시스템.
  10. 제6항에 있어서,
    상기 서버는, 실행시에, 상기 저장소 내의 문서들 중 어느 것이 상기 문서들의 제1 배치 내에 포함되는지를 결정하기 위해 상기 저장소 내의 각각의 문서에 대응하는 메타데이터를 취득하는 단계를 수행하는 컴퓨터 실행가능 명령들을 실행하도록 더 구성되는, 배치 인덱싱을 위한 시스템.
  11. 제10항에 있어서,
    상기 메타데이터는 상기 문서의 크기 및 상기 문서의 확장자 중 적어도 하나에 대응하는, 배치 인덱싱을 위한 시스템.
  12. 제6항에 있어서,
    상기 서버는, 실행시에, 상기 문서들의 제1 배치보다 더 많은 수의 문서들을 포함하는 문서 컨테이너에 상기 문서들의 제1 배치가 대응할 때 상기 문서들의 제1 배치와 쿠키를 관련시키는 단계를 수행하는 컴퓨터 실행가능 명령들을 실행하도록 더 구성되는, 배치 인덱싱을 위한 시스템.
  13. 제6항에 있어서,
    상기 서버는, 실행시에, 상기 변경된 문서 데이터의 배치를 취득하는 단계가 상기 저장소에 대해 더 적은 요구를 요청하도록 상기 저장소와 관련된 계층 구조에 따라 상기 변경된 문서들의 리스트를 정렬하는 단계를 수행하는 컴퓨터 실행가능 명령들을 실행하도록 더 구성되는, 배치 인덱싱을 위한 시스템.
  14. 저장소 내의 문서들의 배치 인덱싱을 위한 컴퓨터 실행가능 명령들을 저장하는 유형의 컴퓨터 판독가능 저장 매체로서,
    컴퓨터에 의해 상기 명령들을 실행시,
    상기 저장소에 문서들을 저장하는 단계 - 상기 문서들은 사이트들, 서브사이트들 및 컨테이너들을 포함하는 계층 구조로 편성됨 - ;
    상기 계층 구조 내의 사이트에 관한 정보에 대한 제1 요청을 수신하는 단계;
    상기 사이트 내에 포함되는 복수의 서브사이트의 리스트를 송신하는 단계;
    상기 서브사이트들의 리스트 내의 서브사이트들 중 하나에 관한 정보에 대한 제2 요청을 수신하는 단계;
    상기 서브사이트들 중 상기 하나에 포함되는 컨테이너들의 리스트를 송신하는 단계;
    상기 컨테이너들의 리스트 내의 컨테이너들 중 하나에 저장된 문서들의 제1 배치의 문서 데이터에 대한 제3 요청을 수신하는 단계 - 상기 제3 요청은 상기 컨테이너들 중 상기 하나 및 상기 문서들의 제1 배치를 식별하는 메타데이터를 포함함 - ;
    상기 문서 데이터를 인덱서에 전달하는 단계;
    변경 로그의 최종 갱신 위치를 기록하는 단계 - 상기 변경 로그는 상기 저장소에 저장된 문서들에 가해진 변경에 대응하는 기록들을 포함함 - ;
    상기 인덱서에 상기 최종 갱신 위치를 전달하는 단계;
    상기 최종 갱신 위치 이래로 변경된 문서들의 리스트를 상기 변경 로그로부터 취득하는 단계;
    상기 변경 로그의 현재 갱신 위치를 기록하는 단계;
    상기 변경된 문서들의 리스트에 대응하는 변경된 문서 데이터의 배치를 상기 저장소로부터 취득하는 단계 - 상기 변경된 문서 데이터의 배치는 복수의 문서에 대한 변경된 컨텐츠를 포함함 - ; 및
    상기 변경된 컨텐츠 및 상기 현재 갱신 위치를 포함하는 상기 변경된 문서 데이터를 상기 인덱서에 전달하는 단계
    를 포함하는 프로세스가 수행되는, 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 변경에 대응하는 기록들은 각각 이벤트 타입, 변경 식별자 및 문서 식별 중 적어도 하나를 포함하는, 컴퓨터 판독가능 저장 매체.
  16. 제14항에 있어서,
    실행시에, 상기 저장소 내의 문서들 중 어느 것이 상기 문서들의 제1 배치를 포함하는지를 결정하기 위해 상기 저장소 내의 각각의 문서에 대응하는 메타데이터를 취득하는 단계를 수행하는 컴퓨터 실행가능 명령들을 더 저장하는 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서,
    상기 메타데이터는 상기 문서의 크기 및 상기 문서의 확장자 중 적어도 하나에 대응하는, 컴퓨터 판독가능 저장 매체.
  18. 제14항에 있어서,
    실행시에, 상기 문서들의 제1 배치보다 더 많은 수의 문서들을 포함하는 문서 컨테이너에 상기 문서들의 제1 배치가 대응할 때 상기 문서들의 제1 배치와 쿠키를 관련시키는 단계를 수행하는 컴퓨터 실행가능 명령들을 더 저장하는 컴퓨터 판독가능 저장 매체.
  19. 제14항에 있어서,
    실행시에, 상기 변경된 문서 데이터를 취득하는 단계가 상기 저장소에 대해 더 적은 요구를 요청하도록 상기 저장소와 관련된 상기 계층 구조에 따라 상기 변경된 문서들의 리스트를 정렬하는 단계를 수행하는 컴퓨터 실행가능 명령들을 더 저장하는 컴퓨터 판독가능 저장 매체.
  20. 삭제
  21. 제1항에 있어서,
    상기 변경된 문서 데이터의 배치는, 상기 사이트 내에 편성되지만 상기 제1 그룹의 문서들 내에는 편성되지 않는 문서에 대한 변경된 컨텐츠를 더 포함하는, 배치 인덱싱을 위한 컴퓨터 실행 방법.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020050056700A 2004-09-30 2005-06-29 네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법 KR100971863B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/956,891 2004-09-30
US10/956,891 US7644107B2 (en) 2004-09-30 2004-09-30 System and method for batched indexing of network documents

Publications (2)

Publication Number Publication Date
KR20060048655A KR20060048655A (ko) 2006-05-18
KR100971863B1 true KR100971863B1 (ko) 2010-07-22

Family

ID=35613902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050056700A KR100971863B1 (ko) 2004-09-30 2005-06-29 네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US7644107B2 (ko)
EP (1) EP1643388A1 (ko)
JP (1) JP2006107446A (ko)
KR (1) KR100971863B1 (ko)
CN (1) CN1755676B (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606793B2 (en) * 2004-09-27 2009-10-20 Microsoft Corporation System and method for scoping searches using index keys
US8458704B2 (en) * 2006-03-20 2013-06-04 American Express Travel Related Services Company, Inc. System and method for an improved merge utility
KR100790991B1 (ko) 2006-03-22 2008-01-03 삼성전자주식회사 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법
US8108388B2 (en) * 2006-04-26 2012-01-31 Microsoft Corporation Significant change search alerts
US9348912B2 (en) * 2007-10-18 2016-05-24 Microsoft Technology Licensing, Llc Document length as a static relevance feature for ranking search results
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
US8458727B2 (en) * 2007-11-05 2013-06-04 Microsoft Corporation Asynchronous client to server updates
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
US20090327295A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Maintenance of exo-file system metadata on removable storage device
US8001462B1 (en) * 2009-01-30 2011-08-16 Google Inc. Updating search engine document index based on calculated age of changed portions in a document
CN101510217B (zh) * 2009-03-09 2013-06-05 阿里巴巴集团控股有限公司 图像数据库中的图像更新方法、服务器及系统
US8738635B2 (en) 2010-06-01 2014-05-27 Microsoft Corporation Detection of junk in search result ranking
US8332408B1 (en) 2010-08-23 2012-12-11 Google Inc. Date-based web page annotation
EP2541473A1 (en) 2011-06-27 2013-01-02 Amadeus S.A.S. Method and system for a pre-shopping reservation system with increased search efficiency
US9235620B2 (en) 2012-08-14 2016-01-12 Amadeus S.A.S. Updating cached database query results
US9495462B2 (en) 2012-01-27 2016-11-15 Microsoft Technology Licensing, Llc Re-ranking search results
KR101916837B1 (ko) * 2012-04-26 2019-01-24 아마데우스 에스.에이.에스. 일괄 지향 연산을 사용하는 데이터베이스 시스템
JP5887236B2 (ja) * 2012-09-24 2016-03-16 株式会社日立ソリューションズ 業務文書処理装置、業務文書処理方法及び業務文書処理プログラム
US9229960B2 (en) 2013-02-11 2016-01-05 International Business Machines Corporation Database management delete efficiency
US20140244517A1 (en) * 2013-02-25 2014-08-28 Carrier Iq, Inc. Incremental Batch Method for Transforming Event-driven Metrics and Measures within a Map/Reduce Data Center
US20140244516A1 (en) 2013-02-25 2014-08-28 Carrier Iq, Inc. Mobile Wireless Customer Micro-Care Apparatus and Method
US9229968B2 (en) 2013-03-11 2016-01-05 Intenational Business Machines Corporation Management of searches in a database system
US9378234B2 (en) 2013-03-11 2016-06-28 International Business Machines Corporation Management of updates in a database system
JP6211722B2 (ja) 2014-06-26 2017-10-11 グーグル インコーポレイテッド 最適化されたブラウザレンダリング処理
JP6356273B2 (ja) * 2014-06-26 2018-07-11 グーグル エルエルシー バッチ最適化レンダリング及びフェッチアーキテクチャ
WO2015196410A1 (en) 2014-06-26 2015-12-30 Google Inc. Optimized browser render process
US10742764B2 (en) 2015-07-27 2020-08-11 Adp, Llc Web page generation system
US10324600B2 (en) 2015-07-27 2019-06-18 Adp, Llc Web page generation system
US10417317B2 (en) 2015-07-27 2019-09-17 Adp, Llc Web page profiler
CN107784009A (zh) * 2016-08-29 2018-03-09 中兴通讯股份有限公司 数据查询、数据查询处理方法及装置
CN106484840A (zh) * 2016-09-30 2017-03-08 上海聚力传媒技术有限公司 自动更新垂直检索索引的方法和装置
US10652309B2 (en) * 2017-09-19 2020-05-12 FinancialForce.com, Inc. Mechanism to allow a messaging system to automatically switch to asynchronous operation due to high demand
JP7131357B2 (ja) * 2018-12-12 2022-09-06 富士通株式会社 通信装置、通信方法、および通信プログラム
US11163792B2 (en) * 2019-05-29 2021-11-02 International Business Machines Corporation Work assignment in parallelized database synchronization
US11507786B2 (en) 2019-11-04 2022-11-22 FinancialForce.com, Inc. Dynamic generation of client-specific feature maps
CN111930702A (zh) * 2020-08-14 2020-11-13 工银科技有限公司 日志处理方法、装置、系统及介质
US11803518B2 (en) 2020-10-01 2023-10-31 Hewlett Packard Enterprise Development Lp Journals to record metadata changes in a storage system
CN112860649A (zh) * 2021-02-03 2021-05-28 深圳市木浪云数据有限公司 增量生成索引的方法、装置及系统
CN113434509B (zh) * 2021-07-02 2023-07-18 挂号网(杭州)科技有限公司 一种增量索引的更新方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418452B1 (en) 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service directory for efficient web crawling
US7085755B2 (en) 2002-11-07 2006-08-01 Thomson Global Resources Ag Electronic document repository management and access system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819156A (en) * 1986-06-13 1989-04-04 International Business Machines Corporation Database index journaling for enhanced recovery
JPH04274533A (ja) * 1991-02-28 1992-09-30 Nec Corp データベース更新装置
US5855020A (en) 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
US6038610A (en) 1996-07-17 2000-03-14 Microsoft Corporation Storage of sitemaps at server sites for holding information regarding content
US6415319B1 (en) * 1997-02-07 2002-07-02 Sun Microsystems, Inc. Intelligent network browser using incremental conceptual indexer
JPH10240757A (ja) * 1997-02-27 1998-09-11 Hitachi Ltd 協調分散検索システム
US5956722A (en) * 1997-09-23 1999-09-21 At&T Corp. Method for effective indexing of partially dynamic documents
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6638314B1 (en) * 1998-06-26 2003-10-28 Microsoft Corporation Method of web crawling utilizing crawl numbers
US6424966B1 (en) 1998-06-30 2002-07-23 Microsoft Corporation Synchronizing crawler with notification source
US6631369B1 (en) 1999-06-30 2003-10-07 Microsoft Corporation Method and system for incremental web crawling
CA2279119C (en) 1999-07-29 2004-10-19 Ibm Canada Limited-Ibm Canada Limitee Heuristic-based conditional data indexing
US6687698B1 (en) * 1999-10-18 2004-02-03 Fisher Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
JP3772606B2 (ja) * 1999-10-19 2006-05-10 株式会社日立製作所 電子文書管理方法及びシステム並びに記録媒体
US6418453B1 (en) * 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service for efficient web crawling
US6842761B2 (en) 2000-11-21 2005-01-11 America Online, Inc. Full-text relevancy ranking
JP2003208434A (ja) * 2001-11-07 2003-07-25 Nec Corp 情報検索システム及びそれに用いる情報検索方法
US20040064442A1 (en) * 2002-09-27 2004-04-01 Popovitch Steven Gregory Incremental search engine
JP4299022B2 (ja) * 2003-02-28 2009-07-22 トヨタ自動車株式会社 コンテンツ検索用インデックス生成装置
US7552109B2 (en) * 2003-10-15 2009-06-23 International Business Machines Corporation System, method, and service for collaborative focused crawling of documents on a network
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US8131674B2 (en) * 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7653617B2 (en) * 2005-08-29 2010-01-26 Google Inc. Mobile sitemaps

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418452B1 (en) 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service directory for efficient web crawling
US7085755B2 (en) 2002-11-07 2006-08-01 Thomson Global Resources Ag Electronic document repository management and access system

Also Published As

Publication number Publication date
US20060074911A1 (en) 2006-04-06
JP2006107446A (ja) 2006-04-20
CN1755676B (zh) 2013-01-23
KR20060048655A (ko) 2006-05-18
US7644107B2 (en) 2010-01-05
EP1643388A1 (en) 2006-04-05
CN1755676A (zh) 2006-04-05

Similar Documents

Publication Publication Date Title
KR100971863B1 (ko) 네트워크 문서의 배치화된 인텍싱을 위한 시스템 및 방법
JP6006267B2 (ja) 索引キーを使用して検索を絞込むシステムおよび方法
US10210256B2 (en) Anchor tag indexing in a web crawler system
US7065523B2 (en) Scoping queries in a search engine
JP5373846B2 (ja) リレーショナルシステムにおける階層的に編成された情報にアクセスするための階層的インデックス付け
US7783626B2 (en) Pipelined architecture for global analysis and index building
US20180089317A1 (en) Document reuse in a search engine crawler
US8266134B1 (en) Distributed crawling of hyperlinked documents
US8560569B2 (en) Method and apparatus for performing bulk file system attribute retrieval
US20060041606A1 (en) Indexing system for a computer file store
JP2006107433A (ja) 検索結果のランク付けへのアンカーテキストの組込みシステムおよび方法
US20060161591A1 (en) System and method for intelligent deletion of crawled documents from an index
US8560521B2 (en) System, method, and computer program product for processing a prefix tree file utilizing a selected agent
US7441252B2 (en) Cache control device, and method and computer program for the same
JP3699267B2 (ja) 検索方法及び検索装置並びにデータベース方法及びデータベース装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20130628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee