KR20170054579A - 네트워크에서의 검색가능 데이터에 대한 인덱스 구성 - Google Patents

네트워크에서의 검색가능 데이터에 대한 인덱스 구성 Download PDF

Info

Publication number
KR20170054579A
KR20170054579A KR1020177012552A KR20177012552A KR20170054579A KR 20170054579 A KR20170054579 A KR 20170054579A KR 1020177012552 A KR1020177012552 A KR 1020177012552A KR 20177012552 A KR20177012552 A KR 20177012552A KR 20170054579 A KR20170054579 A KR 20170054579A
Authority
KR
South Korea
Prior art keywords
data
data field
type
format
search
Prior art date
Application number
KR1020177012552A
Other languages
English (en)
Other versions
KR101782302B1 (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
Priority claimed from US13/650,961 external-priority patent/US9047326B2/en
Priority claimed from US13/650,931 external-priority patent/US9507750B2/en
Application filed by 에이나인.컴, 인크. filed Critical 에이나인.컴, 인크.
Publication of KR20170054579A publication Critical patent/KR20170054579A/ko
Application granted granted Critical
Publication of KR101782302B1 publication Critical patent/KR101782302B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F17/30312
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • G06F17/302
    • G06F17/30321

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨팅 디바이스를 사용하는 엔티티는 검색가능 데이터를 인덱싱되어 저장되도록 네트워크 서비스로 업로드할 수 있다. 데이터는 복수의 데이터 필드들을 포함할 수 있고, 각각의 데이터 필드는 하나 이상의 연관된 값들을 가진다. 네트워크 서비스는, 데이터 필드들에 대한 데이터 필드 유형들 및 데이터 필드들에 대해 인에이블될 검색 옵션들을 결정하기 위해, 데이터 필드들 및 그들 각자의 연관된 값들을 분석할 수 있다. 데이터 필드 유형들 및 검색 옵션들에 적어도 부분적으로 기초하여, 네트워크 서비스는 검색 인덱스 구성/스키마를 생성할 수 있다. 생성된 검색 인덱스 구성/스키마에 적어도 부분적으로 기초하여, 네트워크 서비스는 데이터에 대한 검색 인덱스를 생성할 수 있다. 일부 실시예들에서, 네트워크 서비스는 또한 데이터를 검색 인덱스와 호환되는 포맷으로 변환시킬 수 있다.

Description

네트워크에서의 검색가능 데이터에 대한 인덱스 구성{INDEX CONFIGURATION FOR SEARCHABLE DATA IN NETWORK}
인터넷과 같은 네트워크를 거쳐 통신하기 위해 컴퓨팅 디바이스들이 종종 사용된다. 서비스 제공자에 의해 제공되는 네트워크 기반 서비스들이 점점 더 보편화되고 있다. 컴퓨팅 디바이스들에 의해 사용/검색될 검색가능 데이터를 저장하는 것 또는 컴퓨팅 디바이스들에 부가의 처리 능력을 제공하는 것과 같은 서비스들을 제공할 수 있는 네트워크 기반 서비스에 연결하기 위해 컴퓨팅 디바이스들이 빈번히 사용된다. 검색가능 데이터의 네트워크 기반 저장과 관련하여, 컴퓨팅 디바이스들의 사용자들은, 그들의 데이터가 네트워크 기반 서비스에 의해 인덱싱되어 저장될 수 있도록, 통상적으로 그들의 데이터에 대한 구성 및/또는 포맷을 선택할 필요가 있다. 종래의 접근 방법들은 통상적으로 사용자들에게 그들의 데이터에 대한 적절한 구성을 결정할 것을 요구한다. 종래의 접근 방법들은 또한 사용자의 데이터가 따라야만 하는 포맷을 요구할 수 있고, 그에 의해 사용자들에게 그들의 데이터를 그 포맷으로 변환시킬 것을 요구한다. 이것은 저장 및 검색을 위해 네트워크 기반 서비스를 사용하고자 하는 사용자들에게 불편하거나, 번거롭거나 어려울 수 있고, 그에 의해 전반적인 사용자 경험을 떨어뜨린다.
본 개시 내용에 따른 다양한 실시예들이 도면을 참조하여 기술될 것이다.
도 1은 다양한 실시예들의 양태들이 이용될 수 있는 예시적인 환경을 나타낸 도면.
도 2는 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성의 예시적인 시스템 실시예를 나타낸 도면.
도 3은 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성이 이용될 수 있는 예시적인 웹 브라우징 환경을 나타낸 도면.
도 4는 다양한 실시예들에 따라 생성될 수 있는 예시적인 검색 인덱스를 나타낸 도면.
도 5는 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성의 예시적인 방법 실시예를 나타낸 도면.
도 6은 다양한 실시예들의 양태들을 구현하는 데 사용될 수 있는 예시적인 디바이스를 나타낸 도면.
도 7은 도 6에 예시된 것과 같은 클라이언트 디바이스의 예시적인 구성요소들을 나타낸 도면.
도 8은 다양한 실시예들이 구현될 수 있는 환경을 나타낸 도면.
적어도 하나의 네트워크를 거쳐 수신된 데이터에 대한 검색 인덱스를 생성하는 데 사용될 수 있는 인덱스 구성을 생성하는 시스템들 및 방법들이 기술된다. 적어도 일부 실시예들은 컴퓨팅 디바이스가 데이터를 네트워크(예컨대, 인터넷)를 거쳐 네트워크 서비스(즉, 네트워크 서비스 제공자)에 의해 제공된 저장소 할당량(storage allocation)에 업로드할 수 있게 한다. 네트워크 서비스는 복수의 데이터 필드들에서의 각각의 데이터 필드에 대한 데이터 필드의 유형(즉, 데이터 필드 유형)을 결정하기 위해 업로드된 데이터를 분석할 수 있다. 네트워크 서비스는 업로드된 데이터에 포함된 복수의 데이터 필드들에서의 각각의 데이터 필드에 대한 하나 이상의 검색 옵션들을 인에이블시킬지 여부를 결정하기 위해 업로드된 데이터를 분석할 수 있다.
적어도 일부 실시예들은 컴퓨팅 디바이스가 데이터를 네트워크(예컨대, 인터넷)를 거쳐 네트워크 서비스(즉, 네트워크 서비스 제공자, 네트워크 기반 서비스, 기타)에 의해 제공된 저장소 할당량에 업로드할 수 있게 한다. 하나 이상의 사용자들/엔티티들은 (예컨대, 하나 이상의 컴퓨팅 디바이스들을 사용하여) 네트워크 서비스에 의해 제공될 수 있는 검색 인덱스를 이용하여 네트워크를 거쳐 업로드된 데이터를 검색할 수 있다.
일부 실시예들에서, 업로드된 데이터는 복수의 데이터 필드들을 포함할 수 있다. 네트워크 서비스는 복수의 데이터 필드들에서의 각각의 데이터 필드에 대한 데이터 필드의 유형(즉, 데이터 필드 유형)을 결정하기 위해 업로드된 데이터를 분석할 수 있다. 예를 들어, 각각의 데이터 필드는 정수 유형, 텍스트 유형, 또는 리터럴 유형(literal type)을 비롯한 유형일 수 있다.
더욱이, 네트워크 서비스는 업로드된 데이터에 포함된 복수의 데이터 필드들에서의 각각의 데이터 필드에 대한 하나 이상의 검색 옵션들을 인에이블시킬지 여부를 결정하기 위해 업로드된 데이터를 분석할 수 있다. 예를 들어, 네트워크 서비스는, 각자의 데이터 필드 각각에 대해, 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키게 될 옵션을 인에이블시킬지 여부를 결정할 수 있다. 네트워크 서비스는 또한, 각자의 데이터 필드 각각에 대해, 각자의 데이터 필드에 대한 패싯 카운트(facet count)를 계산하게 될 옵션을 인에이블시킬지를 결정할 수 있다. 게다가, 네트워크 서비스는, 각자의 데이터 필드 각각에 대해, 검색 질의에 응답하여 각자의 데이터 필드와 연관된 값을 반환/제공하게 될 옵션을 인에이블시킬지를 결정할 수 있다.
일부 실시예들에서, 네트워크 서비스는, 결정된 데이터 필드 유형(들) 및 인에이블될 검색 옵션(들)에 적어도 부분적으로 기초하여, 데이터에 대한 인덱스 구성[즉, 검색 인덱스 구성, 스키마(schema), 인덱스 설정(index setting), 기타]을 생성할 수 있다. 네트워크 서비스는, 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성할 수 있다.
다양한 실시예들에 따라 제공될 수 있는 바와 같이, 다양한 다른 기능들 및 장점들이 이하에서 기술되고 제안되어 있다.
도 1은 다양한 실시예들의 양태들이 이용될 수 있는 예시적인 환경(100)을 나타낸 것이다. 예시적인 환경(100)은 적어도 하나의 컴퓨팅 디바이스(102), 네트워크(104)[예컨대, 인터넷, 인트라넷, 로컬 네트워크, LAN(local area network), 기타], 및 네트워크 서비스(106)(즉, 네트워크 서비스 제공자, 네트워크 기반 서비스, 기타)를 포함할 수 있다. 적어도 하나의 컴퓨팅 디바이스(102)는 네트워크(104)를 거쳐 네트워크 서비스(106)에 통신 연결(communicatively connected)될 수 있다. 일부 실시예들에서, 컴퓨팅 디바이스(102)는 인터넷과 같은 네트워크(104) 없이 네트워크 서비스(106)를 전달할 수 있다. 도 1에 도시된 바와 같이, 적어도 하나의 컴퓨팅 디바이스(102)의 사용자(108) 또는 기타 엔티티(예컨대, 개인, 회사, 조직, 그룹, 기타)(108)가 또한 있을 수 있다. 사용자 또는 엔티티(108)는 적어도 하나의 컴퓨팅 디바이스(102)로부터 네트워크(104)를 거쳐 네트워크 서비스(106)로(그리고 그 반대로) 데이터(110)를 전달할 수 있다.
일부 실시예들에서, 네트워크 서비스(106)는 네트워크(104)에 연결된 하나 이상의 호스트들 또는 서버들을 포함하고 그리고/또는 이용할 수 있다. 예를 들어, 네트워크 서비스(106)는 디바이스(102)의 사용자 또는 다른 엔티티(들)(예컨대, 회사, 조직, 그룹, 개인, 기타)(108)와 같은 고객들에게 저장 공간을 임대할 수 있다. 그에 따라, 컴퓨팅 디바이스(102)의 사용자/엔티티(108)는 디바이스(102)로부터의 데이터를 네트워크(104)를 사용하여 네트워크 서비스(106)에 저장할 수 있다. 환언하면, 사용자/엔티티(108) 및/또는 디바이스(102)는 네트워크 서비스(106)를 통해 네트워크 기반 컴퓨팅 저장소를 이용할 수 있다.
하나의 예에서, 컴퓨팅 디바이스(102)는, 도 1에 도시된 바와 같이, 네트워크 서비스(106)에 저장될 데이터(110)를 네트워크(104)를 거쳐 전송할 수 있다. 데이터(110)는 예를 들어, 검색, 데이터베이스 저장, 애플리케이션을 실행하는 것, 가상 기계를 실행하는 것, 운영 체제를 실행하는 것 등을 위해서 네트워크 기반 컴퓨팅에서 이용되는 임의의 데이터일 수 있다. 컴퓨팅 디바이스(102)는 서비스(106)에 의해 제공된 저장소 할당량에 저장될 데이터(110)를 전송할 수 있다. 예를 들어, 사용자/엔티티(108)는 서비스(106) 상의 저장 공간을 구입 또는 임대할 수 있고, 저장소 할당량이 사용자/엔티티(108)에 할당 및 배정될 수 있다. 일부 실시예들에서, 사용자/엔티티(108)는 서비스(106) 상에 특정의 계정 및/또는 저장소 할당량을 가질 수 있고; 엔티티(108)에 할당 및 배정된 저장 공간(예컨대, 저장소 할당량)은 엔티티(108)의 계정과 연관되어 있을 수 있다.
엔티티(108)는 또한 네트워크 서비스(106)가 데이터(110)에 대한 검색 인덱스를 제공하기를 원할 수 있다. 종래의 접근 방법들은 통상적으로 엔티티(108)가 먼저 인덱싱될 데이터(110)에 대한 구성(즉, 인덱스 구성, 스키마, 인덱스 설정, 기타)을 제공할 것을 요구하거나, 종래의 접근 방법들은 엔티티의 데이터(110)가 따라야만 하는 구성/포맷[예컨대, SDF(Search Data Format)]을 요구할 수 있고, 따라서 엔티티(110)에게 그의 데이터(110)를 요구된 구성으로 변환시킬 것을 요구한다. 그렇지만, 이것이 엔티티(108)에게 불편하거나, 번거롭거나 어려울 수 있다.
일부 실시예들에서, 엔티티(108)는 데이터(110)를 네트워크 서비스(106)로 전송할 수 있고, 네트워크 서비스(106)는 데이터(110)를 자동으로[즉, 엔티티(108)로부터의 지시 또는 요청 없이] 분석하고 데이터(110)에 대한 인덱스 구성(예컨대, 검색 인덱스 구성, 검색 인덱스 스키마, 기타)을 생성할 수 있다. 예를 들어, 일부 실시예들에서, 네트워크 서비스(106)는, 데이터(110)에 포함된 하나 이상의 데이터 필드들에 대한 데이터 필드 유형(112)을 결정하는 것 및 데이터(110)에 포함된 하나 이상의 데이터 필드들에 대해 인에이블될 검색 옵션(114)을 결정하는 것에 의해, 데이터(110)를 분석할 수 있다.
데이터 필드 유형(112)을 결정하는 것과 관련하여, 데이터(110)(예컨대, 문서, 파일, 기타)가 연관될 수 있는 복수의 데이터 필드 유형들(예를 들어, 정수 데이터 필드 유형, 리터럴 데이터 필드 유형, 또는 텍스트 데이터 필드 유형, 기타 등등)이 있을 수 있다. 일부 실시예들에서, 데이터(110)는 복수의 데이터 필드들을 포함할 수 있고, 각각의 데이터 필드는 값을 포함한다(예컨대, 데이터 필드 "이름"은 "ABCD-브랜드 셔츠"의 값을 가질 수 있고; 데이터 필드 "가격"은 "$20"의 값을 가질 수 있으며; 기타가 있다). 네트워크 서비스(106)는 복수의 데이터 필드들에서의 각각의 데이터 필드에 대한 데이터 필드 유형을 결정하기 위해 데이터(110)에 포함된 복수의 데이터 필드들을 분석할 수 있다.
예를 들어, 각각의 데이터 필드에 대해, 네트워크 서비스(106)는 각자의 데이터 필드 각각의 값이 지정된 정수 양 임계치(integer amount threshold) 초과의 양의 정수들을 포함하는지를 결정할 수 있고(예컨대, 데이터 필드 "가격"의 값이 모두 정수임); 그러한 경우, 그 각자의 데이터 필드가 정수 데이터 필드 유형인 것으로 결정될 수 있다. 네트워크 서비스(106)는 또한, 예를 들어, 데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치(lower literal amount threshold) 초과이지만 지정된 상부 리터럴 양 임계치(upper literal amount threshold) 미만인 양의 알파벳 문자들을 가지는 것, 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치(literal distinct amount threshold) 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 것에 의해 데이터 필드가 리터럴 데이터 필드 유형인지를 결정할 수 있다. 일부 실시예들에서, 네트워크 서비스(106)는, 예를 들어, 데이터 필드를 텍스트 유형인 것으로 식별하기 위해, 데이터 필드 값의 길이 및 데이터 필드 값에서의 개별 값들의 빈도수 및/또는 퍼센트를 고려할 수 있고; 데이터 필드 값에 많은 개별 값들이 있고 데이터 필드 값이 아주 긴 경우(예컨대, 임계치 초과의 개수의 영숫자 문자들을 가짐), 데이터 필드는 텍스트 유형일 가능성이 있다. 일부 실시예들에서, 데이터 필드가 정수 유형 또는 리터럴 유형이 아닌 경우, 그 데이터 필드는 텍스트 유형일 수 있다.
검색 옵션(114)을 결정하는 것과 관련하여, 네트워크 서비스(106)는 데이터(110)(의 데이터 필드들)에 대해 인에이블될 하나 이상의 검색 옵션들(114)을 결정할 수 있다. 예를 들어, 데이터(110)에 포함된 데이터 필드에 대한 데이터 필드 유형을 결정했으면, 네트워크 서비스(106)는 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션을 인에이블시킬지 여부, 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시킬지 여부, 및/또는 데이터 유형에 대한 검색 값을 반환/제공하는 옵션을 인에이블시킬지 여부를 결정할 수 있다.
예를 들어, 데이터 필드에 대한 데이터 필드 유형이 텍스트인 것으로 결정되는 경우(예컨대, 데이터 필드가 "제품 설명"이고 값이 긴 단락임), 네트워크 서비스(106)는 데이터 필드(및 값)를 검색 인덱스에 포함시키지 않는 옵션을 선택할 수 있다. 다른 예에서, 정수 데이터 필드 유형을 갖는 데이터 필드에 대해(예컨대, 데이터 필드가 "생산 연도"이고 값이 연도임), 네트워크 서비스(106)는 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션을 인에이블시키기로 선택할 수 있고, 서비스(106)는 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시킬 수 있다. 패싯 카운트는 몇개의 검색 결과들이 데이터 필드에 대한 특정한 카테고리에 속하는지의 카운트일 수 있다. 예를 들어, 데이터 필드가 "생산 연도"인 경우, 네트워크 서비스(106)는 몇개의 검색 결과들이 특정한 카테고리와 연관되어 있는지를 나타내는 패싯 카운트를 제공하는 것이 타당한 것으로 결정할 수 있고; 예컨대, "1984 (23), 2002 (12), 2010 (18)"은, "생산 연도" 데이터 필드와 관련하여, 23개의 검색 결과들이 "1984"와 연관되어 있고, 12개의 검색 결과들이 "2002"와 연관되어 있으며, 18개의 검색 결과들이 "2010"과 연관되어 있는 패싯 카운트들의 한 예를 나타낸다.
일부 실시예들에서, 네트워크 서비스(106)는 또한 데이터 필드에 대한 값의 반환을 인에이블시키기로 결정할 수 있다. 예를 들어, 검색 요청에 응답하여, 검색가능 데이터 필드들(및 값들) 전부가 반환(예컨대, 검색되어 제시)될 필요는 없다. 네트워크 서비스(106)는 데이터 필드에 대한 값을 반환할지 여부를 결정할 수 있다.
이제부터 데이터(110)에 대한 구성의 생성을 살펴보면, 네트워크 서비스는 데이터(110)에 대한 구성(예컨대, 검색 인덱스 구성, 스키마, 기타)을 자동으로[즉, 엔티티(108)로부터의 지시 없이] 생성할 수 있다. 일부 실시예들에서, 구성이, 적어도 부분적으로, 데이터(110)를 어떻게 인덱싱할지를 결정하는 데 도움을 줄 수 있고; 인덱스 구성이, 적어도 부분적으로, 데이터(110)가 어떻게 인덱싱될 것인지를 좌우할 수 있다. 구성 또는 스키마는 데이터(110)에 포함된 각각의 데이터 필드에 대한 데이터 필드 유형을 지정하고, 각각의 데이터 필드가 검색가능한지를 나타내며, 각각의 데이터 필드가 순위부여가능(rankable)[예컨대, 분류가능(sortable)]한지, 및 인덱스를 구축하는 데 유용한 기타 유사한 정보를 나타낼 수 있다. 인덱싱될 데이터(110)에 대한 구성을 생성한 후에, 네트워크 서비스(106)는, 생성된 구성에 적어도 부분적으로 기초하여, 데이터(110)에 대한 검색 인덱스를 생성할 수 있다.
도 2는 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성이 이용될 수 있는 예시적인 웹 브라우징 환경(200)을 나타낸 것이다. 예시적인 웹 브라우징 환경(200)은 웹 브라우저와 같은 애플리케이션에 의해 렌더링되고 있는 예시적인 웹 페이지(202)를 포함할 수 있다. 이 예에서, 웹 페이지(202)는 도메인 ABCD.com과 연관되어 있는 네트워크 서비스에 의해 제공될 수 있다.
사용자/엔티티(예컨대, 네트워크 서비스의 고객)는 소매업자일 수 있고, 예를 들어, 셔츠의 판매와 관련되어 있는 데이터를 업로드할 수 있다. 데이터가 네트워크 서비스에 의해 인덱싱되어 저장되고 사용자/엔티티의 잠재적인 고객들과 같은 다른 사람들에 의해 검색가능하게 될 수 있다. 네트워크 서비스는 데이터에 포함된 데이터 필드들 각각에 대한 데이터 필드의 유형(즉, 데이터 필드 유형)을 결정하기 위해 데이터를 분석할 수 있다. 예를 들어, 셔츠의 판매와 관련된 데이터는 "색상"(206), "크기"(208), "가격"(210), "설명", 및 기타 필드들과 같은 데이터 필드들을 포함할 수 있다. 네트워크 서비스는 각자의 데이터 필드 각각에 대한 유형을 결정하기 위해 각각의 데이터 필드에 대한 값을 분석할 수 있다. 네트워크 서비스는 또한 각각의 데이터 필드에 대해 인에이블시킬 하나 이상의 옵션들(예컨대, 검색 옵션들)을 결정할 수 있다. 네트워크 서비스는 이어서 인덱싱될 데이터에 대한 구성/스키마를 생성할 수 있다. 그러면, 네트워크 서비스는, 구성/스키마에 기초하여, 데이터에 대한 인덱스를 생성할 수 있다.
예를 들어, 네트워크 서비스는 데이터 필드 "색상"을 식별하고, 그의 값(예컨대, "적색", "청색", "백색", "녹색", 기타)이 알파벳/리터럴인 것으로 결정할 수 있으며, "색상" 데이터 필드의 유형을 리터럴 유형인 것으로 식별할 수 있다. [이 예에서, "색상" 데이터 필드와 연관된 데이터 및 값들(예컨대, "적색", "청색", "백색", "녹색", 기타)은 엔티티에 의해 업로드될 수 있다.] 다른 예에서, 네트워크 서비스는 업로드된 데이터의 적어도 일부분에서 "크기" 데이터 필드를 식별하고 "크기" 데이터 필드에 포함된 값들이 숫자 값인 것으로 결정할 수 있다. 이 경우에, 네트워크 서비스는 "크기" 데이터 필드가 정수 유형인 것으로 결정할 수 있다. 추가의 예에서, 네트워크 서비스는 업로드된 데이터의 적어도 일부분에서 "설명" 데이터 필드들에 대한 값들을 식별하고 값들이 숫자 및 알파벳 문자 둘 다를 포함하는 것으로 그리고/또는 값들이 문자들의 개수의 면에서 긴 것으로 그리고/또는 값들이 개별 용어들/문구들/심볼들을 가지는 것으로 결정할 수 있다. 이 경우에, 네트워크 서비스는 "설명" 데이터 필드가 텍스트 유형인 것으로 결정할 수 있다.
검색 옵션들과 관련하여, 네트워크 서비스는, 데이터 필드들 각각에 대해, 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션을 인에이블시킬지 여부를 결정할 수 있다. 예를 들어, 일부 실시예들에서, "설명" 데이터 필드들(및 대응하는 값들)이 검색 인덱스로부터 생략될 수 있다. 그러한 경우, 검색 인덱스와 관련하여 질의가 실행될 때, 질의는 "설명" 데이터 필드를 검색하지 않을 것이다. 그렇지만, 일부 실시예들은 "설명" 데이터 필드들 및 값들을 검색 인덱스에 포함시킬 수 있고 그리고 정말로 포함시킨다.
더욱이, 네트워크 서비스는 각각의 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시킬지 여부를 결정할 수 있다. 앞서 언급한 바와 같이, 패싯 카운트는 검색 질의와 일치하는 결과들 중 몇개가 특정의 데이터 필드에 대한 특정의 값(또는 값들의 범위)을 가지는지를 나타낸다. 예를 들어, 도 2에 도시된 바와 같이, "적색"의 값을 갖는 "색상" 데이터 필드는 23의 패싯 카운트(즉, "적색" 셔츠에 대한 23개의 검색 결과들)를 갖는 반면, "색상" 데이터 필드의 "청색" 값은 28의 패싯 카운트(즉, "청색" 셔츠에 대한 28개의 검색 결과들)를 가지며, 기타이다. 일부 실시예들에서, 값들이 겹칠 수 있다(즉, 정확한 일치일 필요는 없다). 예를 들어, 청색 및 적색 줄무늬를 갖는 셔츠는 "청색" 값 및 "적색" 값 둘 다, 및/또는 다른 값들과 연관될 수 있다. 일부 실시예들에서, 네트워크 서비스는 데이터 필드들 중 일부(꼭 데이터 필드들 전부일 필요는 없음)에 대해 패싯 카운트들이 계산되어야만 하는 것으로 결정할 수 있다. 예를 들어, 네트워크 서비스는 "설명"에 대해서가 아니라 "색상", "크기", 및 "가격"에 대한 패싯 카운트들이 있어야만 하는 것으로 결정할 수 있다.
게다가, 네트워크 서비스는 데이터 필드에 대한 값의 반환을 인에이블시킬지 여부를 결정할 수 있다. 예를 들어, 데이터에 포함된 데이터 필드 "내부 제품 식별 번호" - 데이터 필드의 값은 엔티티 내부의 제품 식별 번호이고 엔티티의 고객에게 보여지도록 의도되어 있지 않음 - 가 있을 수 있고; 그에 따라, 네트워크 서비스는 이러한 데이터 필드에 대한 값의 반환을 인에이블시키지 않기로 결정할 수 있다.
통상의 기술자라면 잘 알 것인 다른 항목들에 관련된 데이터 뿐만 아니라 부가의 옵션들이 있을 수 있는 것이 생각되고 있다. 예를 들어, 네트워크 서비스는 데이터 필드를 순위부여가능(예컨대, 분류가능)하게 만드는 옵션을 인에이블시킬지 여부를 결정할 수 있다. 도 2를 참조하면, 일부 실시예들에서, "가격" 데이터 필드는 그의 값에 의해(예컨대, 최저 가격으로부터 최고 가격으로, 최고 가격으로부터 최저 가격으로, 기타로) 순위 부여/분류될 수 있고, "색상" 데이터 필드는 알파벳순으로 분류될 수 있으며(도 2에 예시되지 않음), 기타이다. 다른 예(예시되지 않음)에서, 음악, 비디오, 책, 사진 등과 같은 미디어 파일에 관련된 데이터가 있을 수 있다. 미디어 파일에 대한 예시적인 데이터 필드는 "제목", "예술가/저자", "제작 연도", "가격", "등급", 기타(이들로 제한되지 않음)를 포함할 수 있다.
데이터에 포함된 데이터 필드들의 유형들 및 데이터에 포함된 데이터 필드들에 대한 하나 이상의 검색 옵션들을 결정하면, 네트워크 서비스는 데이터에 대한 구성(즉, 검색 인덱스 구성, 스키마, 기타)을 생성할 수 있고, 구성의 생성은 결정된 데이터 필드 유형들 및 검색 옵션들에 적어도 부분적으로 기초하고 있다.
구성을 생성한 후에, 네트워크 서비스는, 생성된 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성할 수 있다. 그에 따라, 엔티티에 의해 제공된 데이터가 네트워크 서비스에 저장될 수 있고, 데이터에 대한 검색 인덱스가 네트워크 서비스에 의해 생성될 수 있다.
도 3은 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성의 예시적인 시스템 실시예(300)를 나타낸 것이다. 예시적인 시스템 실시예(300)는 시스템 제어기(302), 적어도 하나의 통신 송수신기(304), 데이터 필드 유형 분석기(306), 검색 옵션 분석기(308), 인덱스 구성 생성기(310), 인덱스 생성기(312), 및 적어도 하나의 저장소 할당량(314)을 포함할 수 있다.
시스템 제어기(302)는 시스템이 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성을 위한 다양한 동작들을 수행하는 것을 용이하게 할 수 있다. 시스템 제어기(302)는 시스템 내부에서의 데이터 통신을 용이하게 하기 위해서 뿐만 아니라, 시스템(300)의 외부에 있는 하나 이상의 소스들로의 데이터 전송 및/또는 그로부터의 데이터 수신을 용이하게 하기 위해 적어도 하나의 통신 송수신기(304)와 통신할 수 있다.
통신 송수신기(304)를 통해 시스템(300)에 의해 (예컨대, 엔티티로부터) 수신된 데이터가, 데이터에 포함된 데이터 필드들 각각과 연관된 유형을 결정하기 위해, 데이터 필드 유형 분석기(306)에 의해 분석될 수 있다. 데이터가 또한, 데이터에 포함된 데이터 필드들 각각과 관련하여 하나 이상의 검색 옵션들을 인에이블시킬지 여부를 결정하기 위해, 검색 옵션 분석기(308)에 의해 분석될 수 있다. 결정된 데이터 필드 유형들 및 하나 이상의 결정된 검색 옵션들에 적어도 부분적으로 기초하여, 인덱스 구성 생성기(310)는 검색 인덱스 구성/스키마를 생성할 수 있다. 이어서, 생성된 검색 인덱스 구성/스키마에 적어도 부분적으로 기초하여, 인덱스 생성기(312)는 데이터에 대한 검색 인덱스를 생성할 수 있다. 데이터 및 데이터에 대해 생성된 검색 인덱스는 하나 이상의 저장소 할당량들(314)에 저장될 수 있다.
예시적인 시스템(300)의 다양한 구성요소들 및/또는 부분들이 하드웨어, 소프트웨어, 또는 이 둘의 조합으로서 구현될 수 있는 것이 생각되고 있다. 예를 들어, 시스템(300)의 다양한 부분들이 회로, 프로세서, 애플리케이션, 프로그래밍 코드의 일부분, 알고리즘, 또는 이들의 임의의 조합, 기타를 통해 구현될 수 있다. 도 3이 한 예이고 단지 예시를 위해 사용되기 위한 것임이 또한 생각되고 있다. 예를 들어, 다양한 구성요소들이 도 3에 따라 구성될 필요는 없다. 일부 실시예들에서, 다양한 구성요소들이 서로 밀접하게 결합될 필요는 없고, 그 대신에, 보다 분산된 시스템에 걸쳐 확산되어 있을 수 있다. 예를 들어, 인덱스 생성기와 같은 구성요소가 별개의/상이한 네트워크 및/또는 시스템 상에 존재할 수 있지만, 여전히 다른 구성요소들과의 통신 연결(들)을 유지하고 있다.
도 4는 본 개시 내용의 다양한 실시예들에 따라 생성될 수 있는 예시적인 검색 인덱스(400)를 나타낸 것이다. 도 4를 참조하면, 검색 인덱스에 루트 노드(402)가 있을 수 있다. 도 4의 예에서, T-셔츠 소매업자와 같은 엔티티에 의해 데이터가 업로드될 수 있다. 데이터는 엔티티가 판매하고 있는 T-셔츠[루트 노드(402)]에 관한 정보에 대응할 수 있다. T-셔츠에 관련된 데이터에 대한 데이터 필드들을 나타내는 부모 노드들(예컨대, 404, 406, 408)이 있을 수 있다. 예를 들어, T-셔츠는 색상 데이터 필드(404), 크기 데이터 필드(406), 및 가격 데이터 필드(408)를 가질 수 있다.
도 4의 예를 계속하여, 데이터 필드들은 각자의 데이터 필드 각각 내의 값들을 나타내는 자식 노드들(예컨대, 410, 412, 414, 416, 418)을 가질 수 있다. 예를 들어, 적어도 2개의 색상[적색(410) 및 청색(412)], 하나의 크기[중간(414)], 및 2개의 가격 범위[(<$10(416) 및 $10-$20(418)]가 있을 수 있다. 또한 데이터 필드들 및 값들 중 하나 이상에 대응할 수 있는 한 세트의 검색 결과들/항목들[예컨대, T-셔츠들(420, 422, 424, 426, 428, 430)]이 있을 수 있다.
이 예에서, 3개의 데이터 필드[색상(404), 크기(406), 및 가격(408)] 모두가 검색 인덱스에 포함되어야 하고, 패싯 카운트들을 가질 수 있으며, 관련 검색 질의들에 응답하여 값들을 제공/반환할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 색상:적색(410)은 3의 패싯 카운트를 가질 수 있고, 색상:청색(412)은 2의 패싯 카운트를 가질 수 있다. 크기:중간(414)은 2의 패싯 카운트를 가질 수 있다. 가격:<$10(416)은 1의 패싯 카운트를 가질 수 있고, 가격:$10-$20(418)은 2의 패싯 카운트를 가질 수 있다. 더욱이, 예를 들어, 색상:적색(410)의 검색 질의는 T-셔츠들(422, 424, 및 428)을 반환할 것이고; 예를 들어, 적색(410) 및 청색(412)에 대한 검색은 T-셔츠(422)를 반환할 것이며; 기타이다. 예시적인 검색 인덱스(400)가 트리 구조인 것으로서 도시되어 있지만, 검색 인덱스가 많은 다른 방법들로 및/또는 다른 구조들로 생성될 수 있는 것이 생각되고 있다.
도 5는 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성의 예시적인 방법 실시예(500)를 나타낸 것이다. 다시 말하지만, 달리 언급하지 않는 한, 다양한 실시예들의 범주 내에서, 유사한 또는 대안의 순서로 또는 병렬로 수행되는 부가의, 보다 적은, 또는 대안의 단계들이 있을 수 있다는 것을 잘 알 것이다. 단계(502)에서, 예시적인 방법 실시예(500)는 인덱싱될 데이터를 수신할 수 있다. 예를 들어, 방법(500)은 인덱싱될 (엔티티에 의해 업로드된) 데이터를 수신할 수 있고, 데이터는 복수의 데이터 필드들(또는 적어도 하나의 데이터 필드)을 포함할 수 있다. 일부 실시예들에서, 예시적인 방법은 또한 데이터와 연관된 데이터 필드에 대한 이름을 결정할 수 있다. 단계(504)에서, 예시적인 방법(500)은 데이터와 연관된 데이터 필드의 유형을 결정할 수 있다. 예를 들어, 방법은 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 (복수의 필드 유형들 중의) 필드 유형을 결정할 수 있다. 복수의 필드 유형들은 정수 유형, 리터럴 유형, 또는 텍스트 유형 중 적어도 하나(이들로 제한되지 않음)를 포함할 수 있다. 데이터 필드의 유형은 복수의 데이터 필드 유형들로부터 결정될 수 있다. 일부 실시예들에서, 복수의 데이터 필드들 및 그들의 유형들 및/또는 이름들이 태그들, 신호들, 또는 다른 표시들에 기초하여 식별될 수 있다. 방법(500)은, 단계(506)에서, 데이터와 연관된 데이터 필드와 관련하여 인에이블될 하나 이상의 검색 옵션들을 결정할 수 있다. 예를 들어, 하나 이상의 검색 옵션들은 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 각자의 데이터 필드에 대한 패싯 카운트를 계산하는 옵션, 또는 각자의 데이터 필드와 연관된 하나 이상의 값들을 제공하는 옵션 중 적어도 하나를 포함할 수 있다. 단계(508)는, 데이터 필드의 유형 및 하나 이상의 검색 옵션들에 적어도 부분적으로 기초하여, 데이터에 대한 인덱스 구성을 생성하는 것을 포함할 수 있다. 이어서, 단계(510)에서, 방법(500)은, 데이터에 대한 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성할 수 있다. 일부 실시예들에서, 데이터가 구조화된 데이터(structured data)인지, 자유 형식 텍스트 데이터(free text data)인지, 또는 이 둘의 조합인지에 기초하여, 검색 인덱스가 생성될 수 있다. 일부 실시예들에서, 예시적인 방법은 또한 데이터, 인덱스 구성, 또는 하나 이상의 검색 질의들에 의해 검색가능하게 될 인덱스 중 적어도 하나를 제공할 수 있다.
인덱스 구성에 포함된 다양한 다른 정보가 있을 수 있다. 예를 들어, 구성은 데이터 필드가 패시팅가능(facetable)한지 여부(즉, 데이터 필드에 대해 패싯 카운트가 계산되어야만 하는지 여부), 데이터 필드가 순위부여가능한지 여부(즉, 데이터 필드를 가지는 검색 결과들의 값들이 분류되어야만 하는지 여부), 기타에 관한 정보를 보유할 수 있다.
일부 실시예들에서, 네트워크 서비스는 제1 포맷으로 수신/업로드된 데이터를 검색 인덱스와 호환되는 제2 포맷으로 변환시킬 수 있고, 제2 포맷으로 변환된 데이터를 하나 이상의 저장소 할당량들에 저장할 수 있다. 예를 들어, 네트워크 서비스는 .PDF, .DOC, .DOCX, .CSV, JSON, .XML 등과 같은 몇가지 다양한 포맷들 중 임의의 하나 이상을 가질 수 있는 데이터를 엔티티로부터 수신할 수 있다. 네트워크 서비스는 데이터를 SDF(Search Data Format)와 같은 네트워크 서비스와 호환되는(예컨대, 네트워크 서비스에 의해 인식가능한, 네트워크 서비스에서 이용가능한(workable), 기타의) 포맷으로 자동으로 변환시킬 수 있다.
일부 실시예들에서, 네트워크 서비스는, 제1 포맷과 제2 포맷을 비교하고 제1 포맷과 연관된 적어도 하나의 데이터 필드를 제2 포맷과 연관된 적어도 하나의 데이터 필드에 대응하도록 수정하는 것에 기초하여, 데이터를 변환시킬 수 있다. 예를 들어, 네트워크 서비스는 엔티티로부터 수신된 데이터의 포맷(들)을 비교하고, 포맷이 네트워크 서비스와 호환되도록, 포맷을 수정/업데이트할 수 있다. 이것은 포맷에서의 하나 이상의 데이터 필드들이 추가, 제거, 또는 변경되어야만 하는지를 식별하는 것을 포함할 수 있다.
일부 실시예들에서, 네트워크 서비스는, 데이터 필드와 연관된 값이 지정된 정수 양 임계치 초과의 양의 정수 문자들을 가지는 것으로 결정하는 것에 기초하여, 데이터 필드의 유형이 정수 유형인 것으로 결정할 수 있다. 또한 네트워크 서비스는 데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치 초과이지만 지정된 리터럴 양 임계치 미만인 양의 알파벳 문자들을 가지는 것, 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 것에 의해 데이터 필드의 유형을 리터럴 유형인 것으로 결정할 수 있다. 게다가, 네트워크 서비스는, 데이터 필드와 연관된 값이 지정된 텍스트 양 임계치 초과의 양의 정수 및 알파벳 문자들, 지정된 텍스트 개별 양 임계치 초과의 개수의 개별 문자들, 지정된 텍스트 개별 퍼센트 임계치 초과의 퍼센트의 개별 문자들, 또는 지정된 텍스트 길이 임계치 초과의 길이의 문자들 중 적어도 하나를 가지는 것으로 결정하는 것에 기초하여, 데이터 필드의 유형이 텍스트 유형인 것으로 결정할 수 있다.
일부 실시예들에서, 네트워크 서비스는 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션을 인에이블시키기로 결정할 수 있고, 이 결정은 데이터 필드가 검색 인덱스에 포함되어야 한다는 것을 나타내는, 데이터 필드에 포함된, 신호를 수신하는 것에 적어도 부분적으로 기초한다. 네트워크 서비스는 또한 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시키로 결정할 수 있고, 이 결정은 데이터 필드와 연관된 적어도 하나의 값의 분량(quantity)이 지정된 패싯 카운트 하부 임계치 초과이고 지정된 패싯 카운트 상부 임계치 미만인 것으로 결정하는 것에 적어도 부분적으로 기초한다. 네트워크 서비스는 관련 검색 질의에 응답하여 데이터 필드와 연관된 값을 제공하는 옵션을 인에이블시키기로 추가로 결정할 수 있고, 이 결정은 데이터 필드와 연관된 값이 제공되어야 한다는 것을 나타내는, 데이터 필드에 포함된, 신호를 수신하는 것에 적어도 부분적으로 기초한다.
일부 실시예들에서, 하나 이상의 검색 질의들(예컨대, 검색 질의에서의 용어들)이 네트워크 서비스에 의해 이용될 수 있다. 예를 들어, 네트워크 서비스는 검색자가 특정의 데이터 필드에 관해 패시팅하고 있다는 것을 검색 질의들로부터 추론할 수 있다. 그 결과, 네트워크 서비스는 데이터 필드가, 예를 들어, 리터럴 유형이어야만 하는 것으로 결정할 수 있다.
일부 실시예들에서, 검색자가 질의 용어들을 입력하고 검색을 요청할 때, 하나 이상의 검색 결과들이, 관련성 등에 의해, 특정의 순위 표현(예컨대, 결과들의 순서)으로 제시될 수 있다. 본 개시 내용은 질의에 독립적인 인자들(예컨대, 데이터 내에 포함된 인기도 데이터 필드 등이 있을 수 있음)과 같은 다른 인자들을 고려하는 보다 복잡한 순위 표현들의 생성을 가능하게 할 수 있다. 본 개시 내용은 또한, 데이터를 살펴보고 데이터 필드가 인기도의 면에서 의미있는 것으로 결정하는 것에 의해, 사용될 수 있는 순위 표현들을 제안하기 위한 분석을 가능하게 할 수 있다. 예를 들어, 텍스트 본문 데이터 필드 유형이 있을 수 있고, 그의 길이(예컨대, 또는 그의 길이의 역수)가 고려될 수 있으며 순위 표현들에 대한 유용한 정보를 제공할 수 있다.
일부 실시예들에서, 데이터 필드 유형들은 또한 지리적 위치(geolocation) 유형, 시간 유형, 날짜 유형, 또는 부동 소수점 수(floating point number) 유형을 포함할 수 있다.
본 개시 내용에 따른 다양한 실시예들은 또한 샘플 데이터를 이용할 수 있다. 예를 들어, 사용자/엔티티는 먼저 샘플 데이터를 네트워크 서비스에 제공할 수 있다. 네트워크 서비스는 데이터 필드들의 유형들 및 검색 옵션들을 결정하기 위해 샘플 데이터를 분석할 수 있다. 샘플 데이터에 대한 데이터 필드 유형들 및 검색 옵션들에 기초하여, 네트워크 서비스는 인덱스 구성을 생성하고, 이어서 생성된 인덱스 구성에 기초하여 검색 인덱스를 생성할 수 있다.
도 6은 다양한 실시예들에 따라 사용될 수 있는 예시적인 전자 사용자 디바이스(600)를 나타낸 것이다. 휴대용 컴퓨팅 디바이스(예컨대, 전자 책 리더 또는 태블릿 컴퓨터)가 도시되어 있지만, 입력을 수신하고, 결정하며, 그리고/또는 처리할 수 있는 임의의 전자 디바이스가 본 명세서에 논의된 다양한 실시예들에 따라 사용될 수 있고, 여기서 디바이스들이, 예를 들어, 데스크톱 컴퓨터, 노트북 컴퓨터, PDA(personal data assistant), 스마트폰, 비디오 게임 콘솔, 텔레비전 셋톱 박스, 및 휴대용 미디어 플레이어를 포함할 수 있다는 것을 잘 알 것이다. 일부 실시예들에서, 컴퓨팅 디바이스(600)는 연산 증폭기를 사용하여 신호 처리를 수행할 수 있는 디바이스와 같은 아날로그 디바이스일 수 있다. 이 예에서, 컴퓨팅 디바이스(600)는 정상 동작 하에서 디스플레이 화면과 마주하고 있는(예컨대, 컴퓨팅 디바이스의 디스플레이 화면과 동일한 측면에 있는) 사용자에게 정보를 디스플레이하게 될 디스플레이 화면(602)을 전면에 가진다. 컴퓨팅 디바이스는, 이 예에서, 적어도 하나의 카메라(604) 또는 적어도 하나의 카메라의 적어도 시야에 걸쳐 정지 또는 비디오 영상 정보를 포착하기 위한 기타 촬영 요소를 포함한다. 일부 실시예들에서, 컴퓨팅 디바이스는 하나의 촬영 요소만을 포함할 수 있고, 다른 실시예들에서, 컴퓨팅 디바이스는 몇개의 촬영 요소를 포함할 수 있다. 각각의 영상 포착 요소는 그 중에서도 특히, 예를 들어, 카메라, CCD(charge-coupled device), 움직임 검출 센서, 또는 적외선 센서일 수 있다. 컴퓨팅 디바이스 상에 다수의 영상 포착 요소들이 있는 경우, 영상 포착 요소들이 상이한 유형일 수 있다. 일부 실시예들에서, 적어도 하나의 촬영 요소는 카메라가 180도 이상과 같은 넓은 범위의 각도들에 걸쳐 영상들을 포착할 수 있게 하는 적어도 하나의 광각 광학 요소(wide-angle optical element)[어안 렌즈(fish eye lens) 등]를 포함할 수 있다. 게다가, 각각의 영상 포착 요소는 후속 프레임들을 재빨리 연속하여 포착하도록 구성된 디지털 스틸 카메라, 또는 스트리밍 비디오를 포착할 수 있는 비디오 카메라를 포함할 수 있다.
예시적인 컴퓨팅 디바이스(600)는 또한 디바이스의 사용자에 의해 말해지는 단어들 또는 명령들과 같은 오디오 데이터를 포착할 수 있는 적어도 하나의 마이크(microphone)(606) 또는 기타 오디오 포착 디바이스를 포함한다. 이 예에서, 마이크(606)는, 마이크가 통상적으로 디바이스의 사용자에 의해 말해지는 단어들을 더 잘 포착할 수 있도록, 디바이스의 디스플레이 화면(602)과 동일한 측면 상에 위치되어 있다. 적어도 일부 실시예에서, 마이크는 마이크의 실질적으로 바로 전방으로부터의 사운드 정보를 포착하고 다른 방향들로부터는 제한된 양의 사운드만을 픽업하는 지향성 마이크일 수 있다. 마이크가, 상이한 실시예들에서, 디바이스의 임의의 영역, 면(face), 또는 가장자리의 임의의 적절한 표면 상에 위치될 수 있다는 것과, 다수의 마이크들이 오디오 녹음 및 필터링 등의 목적을 위해 사용될 수 있다는 것을 잘 알 것이다.
예시적인 컴퓨팅 디바이스(600)는 위치 및/또는 움직임 결정 요소와 같은 적어도 하나의 배향 센서(608)를 포함한다. 이러한 센서는, 예를 들어, 컴퓨팅 디바이스의 작은 움직임 뿐만 아니라, 디바이스의 배향 및/또는 배향의 변화도 검출하도록 동작할 수 있는 가속도계 또는 자이로스코프를 포함할 수 있다. 배향 센서는 또한 디바이스가 (예컨대, 주축 또는 다른 이러한 측면과 관련하여) 향하고 있는 것으로 결정되는 방향(예컨대, 북쪽 또는 남쪽)을 지시할 수 있는 전자 또는 디지털 나침반을 포함할 수 있다. 배향 센서는 또한 컴퓨팅 디바이스의 비교적 큰 움직임에 관한 정보 뿐만 아니라, 디바이스의 위치의 상대 좌표들을 결정하도록 동작할 수 있는 GPS(global positioning system) 또는 유사한 위치 결정 요소를 포함하거나 구비할 수 있다. 다양한 실시예들은 하나 이상의 이러한 요소들을 임의의 적절한 조합으로 포함할 수 있다. 잘 알 것인 바와 같이, 상대적 위치, 배향, 및/또는 움직임을 결정하는 데 사용되는 알고리즘들 또는 메커니즘들은 디바이스에 이용가능한 요소들의 선택에 적어도 부분적으로 의존할 수 있다.
도 7은 도 6과 관련하여 기술된 디바이스(600)와 같은 예시적인 컴퓨팅 디바이스(700)의 한 세트의 일반 구성요소들의 논리적 배열을 나타낸 것이다. 이 예에서, 디바이스는 메모리 디바이스 또는 요소(704)에 저장될 수 있는 명령어들을 실행하는 프로세서(702)를 포함한다. 통상의 기술자에게는 명백할 것인 바와 같이, 디바이스는 프로세서(702)에 의해 실행되는 프로그램 명령어들을 위한 제1 데이터 저장소, 영상 또는 데이터를 위한 별개의 저장소, 다른 디바이스들과 정보를 공유하기 위한 이동식 메모리(removable memory), 기타와 같은 많은 유형의 메모리, 데이터 저장소, 또는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 디바이스는 통상적으로 터치 스크린 또는 LCD(liquid crystal display)와 같은 어떤 유형의 디스플레이 요소(706)를 포함할 것이지만, 휴대용 미디어 플레이어와 같은 디바이스들은 오디오 스피커를 통하는 것과 같은 다른 수단을 통해 정보를 전달할 수 있다. 논의된 바와 같이, 많은 실시예들에서, 디바이스는 투사된 영상들 또는 디바이스의 근방에 있는 다른 물체들을 촬영할 수 있는 카메라 또는 적외선 센서와 같은 적어도 하나의 영상 포착 요소(708)를 포함할 것이다. 컴퓨팅 디바이스를 갖는 카메라 요소를 사용하여 영상들 또는 비디오를 포착하는 방법들이 기술 분야에 공지되어 있고, 본 명세서에서 상세히 논의되지 않을 것이다. 영상 포착이 단일의 영상, 다수의 영상들, 주기적인 촬영, 연속적인 영상 포착, 영상 스트리밍, 기타를 사용하여 수행될 수 있다는 것을 잘 알 것이다. 게다가, 디바이스는 사용자, 애플리케이션, 또는 다른 디바이스로부터 명령을 수신할 때와 같이 영상 포착을 시작 및/또는 중지하는 능력을 포함할 수 있다. 예시적인 디바이스는, 이와 유사하게, 적어도 하나의 주 방향으로부터의 오디오 정보를 포착하도록 동작할 수 있는 적어도 하나의 오디오 포착 구성요소(712)(모노 또는 스테레오 마이크 또는 마이크 어레이 등)를 포함한다. 마이크는 이러한 디바이스들에 대해 알려진 것과 같은 단방향(uni-directional) 또는 전방향(omnidirectional) 마이크일 수 있다.
일부 실시예들에서, 도 7의 컴퓨팅 디바이스(700)는 Wi-Fi, 블루투스, RF, 유선, 또는 무선 통신 시스템과 같은 하나 이상의 통신 요소들(도시 생략)을 포함할 수 있다. 많은 실시예들에서, 디바이스는 인터넷과 같은 네트워크와 통신할 수 있고, 다른 이러한 디바이스들과 통신할 수 있을 것이다. 일부 실시예들에서, 디바이스는 사용자로부터 종래의 입력을 수신할 수 있는 적어도 하나의 부가의 입력 디바이스를 포함할 수 있다. 이 종래의 입력은, 예를 들어, 사용자가 디바이스에 명령을 입력할 수 있는 푸시 버튼, 터치 패드, 터치 스크린, 휠, 조이스틱, 키보드, 마우스, 키패드, 또는 임의의 다른 이러한 디바이스 또는 요소를 포함할 수 있다. 그러나, 일부 실시예들에서, 이러한 디바이스는 어떤 버튼들도 포함하지 않을 수 있고, 사용자가 디바이스와 접촉할 필요 없이 디바이스를 제어할 수 있도록, 시각적 및 오디오 명령들의 조합을 통해서만 제어될 수 있다.
디바이스(700)는 또한 적어도 하나의 배향 또는 움직임 센서(710)를 포함할 수 있다. 논의된 바와 같이, 이러한 센서는 배향 및/또는 배향의 변화를 검출하도록 동작할 수 있는 가속도계 또는 자이로스코프, 디바이스가 향하고 있는 것으로 결정되는 방향을 지시할 수 있는 전자 또는 디지털 나침반을 포함할 수 있다. 메커니즘(들)은 또한(또는 다른 대안으로서) 컴퓨팅 디바이스의 비교적 큰 움직임에 관한 정보 뿐만 아니라, 디바이스의 위치의 상대 좌표들을 결정하도록 동작할 수 있는 GPS(global positioning system) 또는 유사한 위치 결정 요소를 포함하거나 구비할 수 있다. 디바이스는 삼각측량을 통한 위치 결정 또는 다른 이러한 접근 방법을 가능하게 할 수 있는 것과 같은 다른 요소들도 포함할 수 있다. 이 메커니즘들은, 디바이스가 본 명세서에 기술되거나 제안된 다수의 동작들 중 임의의 것을 수행할 수 있도록, 프로세서(702)와 통신할 수 있다.
한 예로서, 도 6과 관련하여 기술된 것과 같은 컴퓨팅 디바이스는 시간의 경과에 따라 사용자에 대한 다양한 정보를 포착 및/또는 추적할 수 있다. 이 정보는 위치, 동작들(예컨대, 메시지를 송신하는 것 또는 문서를 작성하는 것), 사용자 거동(예컨대, 사용자가 작업을 얼마나 자주 수행하는지, 사용자가 작업에 소비하는 시간량, 사용자가 인터페이스를 통해 탐색하는 방법들, 기타), 사용자 선호도(user preferences)(예컨대, 사용자가 정보를 어떻게 수신하고자 하는지), 공개 애플리케이션(open applications), 제출된 요청, 수신된 통화, 기타과 같은 임의의 적절한 정보를 포함할 수 있다. 앞서 논의한 바와 같이, 정보는, 사용자가 임의의 적절한 차원 또는 차원들의 그룹을 사용하여 정보에 액세스할 수 있도록, 정보가 링크되거나 달리 연관되는 방식으로 저장될 수 있다.
논의된 바와 같이, 기술된 실시예들에 따라 다양한 환경들에서 상이한 접근 방법들이 구현될 수 있다. 예를 들어, 도 8은 다양한 실시예들에 따른 양태들을 구현하기 위한 환경(800)의 한 예를 나타낸 것이다. 잘 알 것인 바와 같이, 설명을 위해 웹 기반 환경이 사용되고 있지만, 다양한 실시예들을 구현하기 위해, 적절한 경우, 상이한 환경들이 사용될 수 있다. 본 시스템은 적절한 네트워크(804)를 거쳐 요청들, 메시지들 또는 정보를 송신 및 수신하고 정보를 다시 디바이스의 사용자에게 전달하도록 동작할 수 있는 임의의 적절한 디바이스를 포함할 수 있는 전자 클라이언트 디바이스(802)를 포함한다. 이러한 클라이언트 디바이스들의 예는 개인용 컴퓨터, 셀폰, 핸드헬드 메시징 디바이스, 랩톱 컴퓨터, 셋톱 박스, PDA(personal data assistant), 전자 책 리더, 기타를 포함한다. 네트워크는 인트라넷, 인터넷, 셀룰러 네트워크, LAN(local area network) 또는 임의의 다른 이러한 네트워크 또는 이들의 조합을 비롯한 임의의 적절한 네트워크를 포함할 수 있다. 이러한 시스템을 위해 사용되는 구성요소들은 선택된 네트워크 및/또는 환경의 유형에 적어도 부분적으로 의존할 수 있다. 이러한 네트워크를 통해 통신하기 위한 프로토콜들 및 구성요소들은 공지되어 있고, 본 명세서에서 상세히 논의되지 않을 것이다. 네트워크를 거치는 통신은 유선 또는 무선 연결 및 이들의 조합을 통해 가능하게 될 수 있다. 이 예에서, 환경이 요청들을 수신하고 그에 응답하여 콘텐츠를 서비스하기 위한 웹 서버(806)를 포함할 때, 네트워크가 인터넷을 포함하지만, 통상의 기술자에게 명백할 것인 바와 같이, 다른 네트워크들에 대해서는, 유사한 목적에 도움이 되는 대안의 디바이스가 사용될 수 있을 것이다.
예시적인 환경은 적어도 하나의 애플리케이션 서버(808) 및 데이터 스토어(810)를 포함한다. 적절한 데이터 스토어로부터 데이터를 획득하는 것과 같은 작업들을 수행하기 위해 상호작용할 수 있는, 체이닝(chain)되거나 다른 방식으로 구성될 수 있는, 몇개의 애플리케이션 서버들, 계층들 또는 다른 요소들, 프로세스들 또는 구성요소들이 있을 수 있다는 것을 잘 알 것이다. 본 명세서에서 사용되는 바와 같이, "데이터 스토어"라는 용어는 데이터를 저장하고 데이터에 액세스하며 데이터를 검색할 수 있는 임의의 디바이스 또는 디바이스들의 조합을 말하며, 임의의 표준, 분산 또는 클러스터 환경에 있는 임의의 조합 및 수의 데이터 서버들, 데이터베이스들, 데이터 저장 디바이스들 및 데이터 저장 매체를 포함할 수 있다. 애플리케이션 서버는 클라이언트 디바이스에 대한 하나 이상의 애플리케이션들의 양태들을 실행하기 위해 필요에 따라 데이터 스토어와 통합하고 애플리케이션에 대한 대부분의 데이터 액세스 및 비즈니스 로직을 처리하기 위한 임의의 적절한 하드웨어 및 소프트웨어를 포함할 수 있다. 애플리케이션 서버는 데이터 스토어와 협력하여 액세스 제어 서비스를 제공하고, 이 예에서, 웹 서버에 의해 HTML, XML 또는 다른 적절한 구조화된 언어의 형태로 사용자에게 서비스될 수 있는, 사용자에게 전송될 텍스트, 그래픽, 오디오 및/또는 비디오와 같은 콘텐츠를 생성할 수 있다. 클라이언트 디바이스(802)와 애플리케이션 서버(808) 사이에서의 콘텐츠의 전달 뿐만 아니라, 모든 요청들 및 응답들의 처리도 웹 서버(806)에 의해 처리될 수 있다. 본 명세서에 논의된 구조화된 코드가, 본 명세서의 다른 곳에서 논의된 바와 같이, 임의의 적절한 디바이스 또는 호스트 기계에서 실행될 수 있기 때문에, 웹 서버 및 애플리케이션 서버가 요구되지 않고 단지 예시적인 구성요소라는 것을 잘 알 것이다.
데이터 스토어(810)는 특정의 양태에 관련된 데이터를 저장하기 위한 몇개의 개별적인 데이터 테이블들, 데이터베이스들 또는 다른 데이터 저장 메커니즘들 및 매체를 포함할 수 있다. 예를 들어, 예시된 데이터 스토어는 생산 측면에 대한 콘텐츠를 서비스하기 위해 사용될 수 있는, 생산 데이터(812) 및 사용자 정보(816)를 저장하기 위한 메커니즘들을 포함한다. 데이터 스토어는 또한 로그 또는 세션 데이터(814)를 저장하기 위한 메커니즘을 포함하는 것으로 도시되어 있다. 적절한 경우 앞서 열거된 메커니즘들 중 임의의 것에 또는 데이터 스토어(810)에서의 부가의 메커니즘들에 저장될 수 있는, 페이지 영상 정보 및 액세스 권한 정보와 같은 데이터 스토어에 저장될 필요가 있을 수 있는 많은 다른 양태들이 있을 수 있다는 것을 잘 알 것이다. 데이터 스토어(810)는, 그와 연관된 로직을 통해, 애플리케이션 서버(808)로부터 명령어들을 수신하고 그에 응답하여 데이터를 획득, 업데이트 또는 다른 방식으로 처리하도록 동작할 수 있다. 하나의 예에서, 사용자는 특정한 유형의 요소에 대한 검색 요청을 제출할 수 있다. 이 경우에, 데이터 스토어는 사용자의 신원을 확인하기 위해 사용자 정보에 액세스할 수 있고, 그 유형의 요소들에 관한 정보를 획득하기 위해 카탈로그 상세 정보에 액세스할 수 있다. 정보는 이어서, 사용자가 사용자 디바이스(802) 상의 브라우저를 통해 볼 수 있는 웹 페이지 상의 결과 목록 등으로, 사용자에게 반환될 수 있다. 특정의 관심 요소에 대한 정보는 브라우저의 전용 페이지 또는 윈도우에서 볼 수 있다.
각각의 서버는 통상적으로 그 서버의 일반 관리 및 동작을 위한 실행가능 프로그램 명령어들을 제공하는 운영 체제를 포함할 것이고, 통상적으로 서버의 프로세서에 의해 실행될 때, 서버가 그의 의도된 기능들을 수행할 수 있게 하는 명령어들을 저장하는 컴퓨터 판독가능 매체를 포함할 것이다. 서버들의 운영 체제 및 일반 기능에 대한 적당한 구현예들은 공지되거나 상업적으로 이용가능하고, 통상의 기술자에 의해, 특히 본 명세서에서의 개시 내용을 고려하여 용이하게 구현된다.
하나의 실시예에서, 환경은 하나 이상의 컴퓨터 네트워크들 또는 직접 연결들을 사용하여 통신 링크들을 통해 상호연결되는 몇개의 컴퓨터 시스템들 및 구성요소들을 이용하는 분산 컴퓨팅 환경이다. 그렇지만, 통상의 기술자라면, 이러한 시스템이 도 8에 예시된 것보다 더 적거나 더 많은 수의 구성요소들을 가지는 시스템에서 똑같이 잘 동작할 수 있다는 것을 잘 알 것이다. 이와 같이, 도 8에서의 시스템(800)의 도시는 본 개시 내용의 범주를 제한하는 것이 아니라 사실상 예시적인 것으로 보아야만 한다.
앞서 논의한 바와 같이, 다양한 실시예들이, 어떤 경우에, 다수의 애플리케이션들 중 임의의 것을 동작시키기 위해 사용될 수 있는 하나 이상의 사용자 컴퓨터들, 컴퓨팅 디바이스들, 또는 처리 디바이스들을 포함할 수 있는 아주 다양한 동작 환경들에서 구현될 수 있다. 사용자 또는 클라이언트 디바이스들은 모바일 소프트웨어를 실행시키고 다수의 네트워킹 및 메시징 프로토콜들을 지원할 수 있는 셀룰러, 무선, 및 핸드헬드 디바이스들 뿐만 아니라, 표준 운영 체제를 실행시키는 데스크톱 또는 랩톱 컴퓨터와 같은 다수의 범용 개인용 컴퓨터들 중 임의의 것을 포함할 수 있다. 이러한 시스템은 또한 각종의 상업적으로 이용가능한 운영 체제들과 개발 및 데이터베이스 관리와 같은 목적들을 위한 기타 공지된 애플리케이션들 중 임의의 것을 실행시키는 다수의 워크스테이션들을 포함할 수 있다. 이 디바이스들은 또한 네트워크를 통해 통신할 수 있는 더미 단말(dummy terminal), 씬 클라이언트(thin-client), 게임 시스템, 및 기타 디바이스들과 같은 기타 전자 디바이스들을 포함할 수 있다.
다양한 양태들은 또한 서비스-지향 아키텍처의 일부일 수 있는 것과 같은 적어도 하나의 서비스 또는 웹 서비스의 일부로서 구현될 수 있다. 웹 서비스와 같은 서비스들은, XML(extensible markup language) 포맷으로 되어 있고 SOAP("Simple Object Access Protocol"로부터 도출됨)와 같은 적절한 프로토콜을 사용하여 교환되는 메시지들을 사용하는 것과 같이, 임의의 적절한 유형의 메시징을 사용하여 통신할 수 있다. 이러한 서비스들에 의해 제공되거나 실행되는 프로세스들은 WSDL(Web Services Description Language)과 같은 임의의 적절한 언어로 작성될 수 있다. WSDL과 같은 언어를 사용하는 것은 다양한 SOAP 프레임워크들에서 클라이언트측 코드의 자동 발생과 같은 기능을 가능하게 한다.
대부분의 실시예들은 TCP/IP, OSI, FTP, UPnP, NFS, CIFS, 및 AppleTalk와 같은 각종의 상업적으로 이용가능한 프로토콜들 중 임의의 것을 사용하여 통신을 지원하기 위해 통상의 기술자에게 익숙한 적어도 하나의 네트워크를 이용한다. 네트워크는, 예를 들어, LAN(local area network), WAN(wide-area network), VPN(virtual private network), 인터넷, 인트라넷, 엑스트라넷, PSTN(public switched telephone network), 적외선 네트워크, 무선 네트워크, 및 이들의 임의의 조합일 수 있다.
웹 서버를 이용하는 실시예들에서, HTTP 서버, FTP 서버, CGI 서버, 데이터 서버, 자바 서버, 및 비지니스 애플리케이션 서버를 비롯한 웹 서버는 각종의 서버 또는 중간 계층(mid-tier) 애플리케이션들 중 임의의 것을 실행할 수 있다. 서버(들)는, Java?, C, C# 또는 C++와 같은 임의의 프로그래밍 언어 또는 Perl, Python, 또는 TCL과 같은 임의의 스크립팅 언어는 물론, 이들의 조합들로 작성된 하나 이상의 스크립트들 또는 프로그램들로서 구현될 수 있는 하나 이상의 웹 애플리케이션들을 실행하는 것 등에 의해, 사용자 디바이스들로부터의 요청들에 응답하여 프로그램들 또는 스크립트들을 실행할 수 있을 것이다. 서버(들)는 또한 Oracle?, Microsoft?, Sybase?, 및 IBM?으로부터 상업적으로 이용가능한 것들(이들로 제한되지 않음)을 비롯한 데이터베이스 서버들을 포함할 수 있다.
환경은 앞서 논의된 바와 같은 각종의 데이터 스토어들과 기타 메모리 및 저장 매체를 포함할 수 있다. 이들은 컴퓨터들 중 하나 이상에 로컬이거나(및/또는 그에 존재하거나) 네트워크를 거쳐 컴퓨터들 중 일부 또는 전부로부터 원격지에 있는 저장 매체 상과 같은 각종의 장소들에 존재할 수 있다. 특정의 세트의 실시예들에서, 정보는 통상의 기술자에게 익숙한 SAN(storage-area network)에 존재할 수 있다. 이와 유사하게, 컴퓨터들, 서버들, 또는 기타 네트워크 디바이스들에 속하는 기능들을 수행하기 위한 임의의 필요한 파일들은, 적절한 경우, 로컬적으로 및/또는 원격적으로 저장될 수 있다. 시스템이 컴퓨터화된 디바이스들을 포함하는 경우, 각각의 이러한 디바이스는 버스를 통해 전기적으로 결합될 수 있는 하드웨어 요소들을 포함할 수 있고, 그 요소들은, 예를 들어, 적어도 하나의 CPU(central processing unit), 적어도 하나의 입력 디바이스(예컨대, 마우스, 키보드, 컨트롤러, 터치 스크린, 또는 키패드), 및 적어도 하나의 출력 디바이스(예컨대, 디스플레이 디바이스, 프린터, 또는 스피커)를 포함한다. 이러한 시스템은 또한 디스크 드라이브, 광 저장 디바이스, 및 RAM(random access memory) 또는 ROM(read-only memory)과 같은 고상 저장 디바이스는 물론, 이동식 매체 디바이스, 메모리 카드, 플래시 카드, 기타와 같은 하나 이상의 저장 디바이스들을 포함할 수 있다.
이러한 디바이스들은 또한 컴퓨터 판독가능 저장 매체 판독기, 통신 디바이스[예컨대, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 기타], 및 앞서 기술한 바와 같은 작업 메모리(working memory)를 포함할 수 있다. 컴퓨터 판독가능 저장 매체 판독기는 컴퓨터 판독가능 정보를 일시적으로 및/또는 보다 영구적으로 포함, 저장, 전송 및 검색하기 위한 저장 매체 뿐만 아니라, 원격, 로컬, 고정식, 및/또는 이동식 저장 디바이스를 나타내는 컴퓨터 판독가능 저장 매체와 연결되거나 그를 수납(receive)하도록 구성될 수 있다. 시스템 및 다양한 디바이스들은 또한 통상적으로 운영 체제 및 애플리케이션 프로그램들(예를 들어, 클라이언트 애플리케이션 또는 웹 브라우저)을 비롯한, 적어도 하나의 작업 메모리 디바이스 내에 위치된 다수의 소프트웨어 애플리케이션들, 모듈들, 서비스들, 또는 기타 요소들을 포함할 것이다. 대안의 실시예들이 앞서 기술된 것으로부터의 다수의 변형들을 가질 수 있다는 것을 잘 알 것이다. 예를 들어, 커스터마이즈된 하드웨어(customized hardware)가 또한 사용될 수 있고 그리고/또는 특정의 요소들이 하드웨어, 소프트웨어[애플릿과 같은 이식가능 소프트웨어(portable software)를 포함함], 또는 둘 다로 구현될 수 있다. 게다가, 네트워크 입출력 디바이스와 같은 기타 컴퓨팅 디바이스들에의 연결이 이용될 수 있다.
코드 또는 코드의 일부분을 포함하기 위한 저장 매체 및 컴퓨터 판독가능 매체는, 원하는 정보를 저장하는 데 사용될 수 있고 시스템 디바이스에 의해 액세스될 수 있는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 기타 자기 저장 디바이스, 또는 임의의 다른 매체를 포함하는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체(이들로 제한되지 않음)와 같은 저장 매체를 포함하는 기술 분야에 공지되거나 사용되는 임의의 적절한 매체를 포함할 수 있다. 본 명세서에 제공된 개시 내용 및 교시에 기초하여, 통상의 기술자라면 다양한 실시예들을 구현하는 다른 방식들 및/또는 방법들을 잘 알 것이다.
그에 따라, 본 명세서 및 도면은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다. 그렇지만, 청구범위에 기재된 본 발명의 보다 광의의 사상 및 범주를 벗어나지 않고 본 발명에 대해 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다.
본 개시 내용의 다양한 실시예들이 이하의 항목들을 바탕으로 기술될 수 있다.
A1. 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성을 위한 컴퓨터 구현 방법으로서,
복수의 데이터 필드들을 포함하는 인덱싱될 데이터를 수신하는 단계;
복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 이름을 결정하는 단계;
복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 복수의 필드 유형들의 필드 유형을 결정하는 단계 - 복수의 필드 유형들은 정수 유형, 리터럴 유형, 또는 텍스트 유형 중 적어도 하나를 포함함 -;
데이터 필드들 각각에 대한 하나 이상의 검색 옵션들을 인에이블시킬지를 결정하는 단계 - 하나 이상의 검색 옵션들은 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 각자의 데이터 필드에 대한 패싯 카운트를 계산하는 옵션, 또는 각자의 데이터 필드와 연관된 하나 이상의 값들을 제공하는 옵션 중 적어도 하나를 포함함 -;
데이터에 포함된 각각의 데이터 필드의 필드 유형 및 하나 이상의 검색 옵션들을 인에이블시킬지의 결정에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스 구성을 생성하는 단계; 및
데이터에 대한 검색 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
A2. 항목 A1에 있어서, 데이터는 제1 포맷으로 되어 있고,
데이터를 제1 포맷으로부터 검색 인덱스와 호환되는 제2 포맷으로 변환시키는 단계; 및
제2 포맷으로 변환된 데이터를 하나 이상의 저장소 할당량(storage allocation)들에 저장하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
A3. 항목 A2에 있어서, 데이터를 제1 포맷으로부터 제2 포맷으로 변환시키는 단계는
제1 포맷과 제2 포맷을 비교하는 단계; 및
제1 포맷과 연관된 적어도 하나의 데이터 필드를 제2 포맷과 연관된 적어도 하나의 데이터 필드에 대응하도록 수정하는 단계를 포함하는, 컴퓨터 구현 방법.
A4. 항목 A2에 있어서, 제2 포맷이 SDF(Search Data Format)인, 컴퓨터 구현 방법.
A5. 컴퓨터 구현 방법으로서,
인덱싱될 데이터를 수신하는 단계;
데이터와 연관된 데이터 필드의 유형을 결정하는 단계 - 데이터 필드의 유형은 복수의 데이터 필드 유형들로부터 결정됨 -;
데이터와 연관된 데이터 필드와 관련하여 인에이블될 하나 이상의 검색 옵션들을 결정하는 단계;
데이터 필드의 유형 및 하나 이상의 검색 옵션들에 적어도 부분적으로 기초하여, 데이터에 대한 인덱스 구성을 생성하는 단계; 및
데이터에 대한 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
A6. 항목 A5에 있어서, 데이터는 제1 포맷으로 되어 있고,
데이터를 제1 포맷으로부터 검색 인덱스와 호환되는 제2 포맷으로 변환시키는 단계; 및
제2 포맷으로 변환된 데이터를 하나 이상의 저장소 할당량들에 저장하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
A7. 항목 A6에 있어서, 데이터를 제1 포맷으로부터 제2 포맷으로 변환시키는 단계는
제1 포맷과 제2 포맷을 비교하는 단계; 및
제1 포맷과 연관된 적어도 하나의 데이터 태그를 제2 포맷과 연관된 적어도 하나의 데이터 태그에 대응하도록 수정하는 단계를 포함하는, 컴퓨터 구현 방법.
A8. 항목 A5에 있어서, 복수의 데이터 필드 유형들은 정수 유형, 텍스트 유형, 리터럴 유형, 지리적 위치(geolocation) 유형, 시간 유형, 날짜 유형, 또는 부동 소수점 수(floating point number) 유형 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
A9. 항목 A8에 있어서, 데이터 필드의 유형을 결정하는 단계는
데이터 필드와 연관된 값이 지정된 정수 양 임계치(integer amount threshold) 초과의 양의 정수 문자들을 가지는 것으로 결정하는 단계; 및
데이터 필드의 유형을 정수 유형인 것으로 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
A10. 항목 A8에 있어서, 데이터 필드의 유형을 결정하는 단계는
데이터 필드와 연관된 값이 지정된 텍스트 양 임계치(text amount threshold) 초과의 양의 영숫자 문자들을 가지는 것, 데이터 필드와 연관된 개별 값들의 개수가 지정된 텍스트 개별 양 임계치(text distinct amount threshold) 초과인 것, 개별 값들의 퍼센트가 지정된 텍스트 개별 퍼센트 임계치(text distinct percentage threshold) 초과인 것, 또는 값들의 길이가 지정된 텍스트 길이 임계치 초과인 것 중 적어도 하나를 결정하는 단계; 및
데이터 필드의 유형을 텍스트 유형인 것으로 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
A11. 항목 A8에 있어서, 데이터 필드의 유형을 결정하는 단계는
데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치(lower literal amount threshold) 초과이지만 지정된 상부 리터럴 양 임계치(upper literal amount threshold) 미만인 양의 알파벳 문자들을 가지는 것, 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치(literal distinct amount threshold) 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 단계; 및
데이터 필드의 유형을 리터럴 유형인 것으로 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
A12. 항목 A5에 있어서, 하나 이상의 검색 옵션들은 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 데이터 필드에 대한 패싯 카운트(facet count)를 계산하는 옵션, 또는 관련 검색 질의에 응답하여 데이터 필드와 연관된 값을 제공하는 옵션 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
A13. 항목 A12에 있어서, 인에이블될 하나 이상의 검색 옵션들을 결정하는 단계는 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션을 인에이블시키기로 결정하는 단계를 포함하고, 이 결정은 데이터 필드가 검색 인덱스에 포함되어야 한다는 것을 나타내는, 데이터 필드에 포함된, 신호를 수신하는 것 또는 데이터 필드의 유형을 리터럴 유형인 것으로 결정하는 것 중 적어도 하나에 적어도 부분적으로 기초하는, 컴퓨터 구현 방법.
A14. 항목 A12에 있어서, 인에이블될 하나 이상의 검색 옵션들을 결정하는 단계는 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시키로 결정하는 단계를 포함하고, 이 결정은 데이터 필드와 연관된 복수의 값들의 분포에 대한 분량(quantity)이 지정된 패싯 카운트 상부 임계치 미만인 것으로 결정하는 것에 적어도 부분적으로 기초하는, 컴퓨터 구현 방법.
A15. 항목 A12에 있어서, 인에이블될 하나 이상의 검색 옵션들을 결정하는 단계는 관련 검색 질의에 응답하여 데이터 필드와 연관된 값을 제공하는 옵션을 인에이블시키기로 결정하는 단계를 포함하고, 이 결정은 데이터 필드와 연관된 값이 제공되어야 한다는 것을 나타내는, 데이터 필드에 포함된, 신호를 수신하는 것 또는 데이터 필드와 연관된 값의 길이가 지정된 반환 값 길이 임계치 미만인 것으로 결정하는 것 중 적어도 하나에 적어도 부분적으로 기초하는, 컴퓨터 구현 방법.
A16. 항목 A5에 있어서, 데이터, 인덱스 구성, 또는 하나 이상의 검색 질의들에 의해 검색가능하게 될 인덱스 중 적어도 하나를 제공하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
A17. 항목 A5에 있어서, 하나 이상의 사용자-개시 입력들에 적어도 부분적으로 기초하여, 인덱스 구성을 수정하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
A18. 시스템으로서,
적어도 하나의 통신 송수신기;
하나 이상의 저장소 할당량들;
적어도 하나의 프로세서; 및
명령어들을 포함하는 메모리 디바이스를 포함하고, 이 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 시스템으로 하여금
적어도 하나의 통신 송수신기를 통해, 인덱싱될 데이터를 수신하게 하고;
데이터와 연관된 데이터 필드의 유형을 결정하게 하며 - 데이터 필드의 유형은 복수의 데이터 필드 유형들로부터 결정됨 -;
데이터와 연관된 데이터 필드와 관련하여 인에이블될 하나 이상의 검색 옵션들을 결정하게 하고;
데이터 필드의 유형 및 하나 이상의 검색 옵션들에 적어도 부분적으로 기초하여, 데이터에 대한 인덱스 구성을 생성하게 하며;
데이터에 대한 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성하게 하는, 시스템.
A19. 항목 A18에 있어서, 데이터는 제1 포맷으로 되어 있고, 명령어들은 시스템으로 하여금 추가적으로
데이터를 제1 포맷으로부터 검색 인덱스와 호환되는 제2 포맷으로 변환시키게 하고;
제2 포맷으로 변환된 데이터를 하나 이상의 저장소 할당량들에 저장하게 하는, 시스템.
A20. 항목 A19에 있어서, 명령어들은 시스템으로 하여금 제1 포맷과 제2 포맷을 비교하고 제1 포맷과 연관된 적어도 하나의 데이터 필드를 제2 포맷과 연관된 적어도 하나의 데이터 필드에 대응하도록 수정하는 것에 기초하여, 데이터를 제1 포맷으로부터 제2 포맷으로 변환시키게 하는, 시스템.
A21. 요소들을 식별하는 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어들은, 컴퓨팅 시스템의 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금
인덱싱될 데이터를 수신하게 하고;
데이터와 연관된 데이터 필드의 유형을 결정하게 하며 - 데이터 필드의 유형은 복수의 데이터 필드 유형들로부터 결정됨 -;
데이터와 연관된 데이터 필드와 관련하여 인에이블될 하나 이상의 검색 옵션들을 결정하게 하고;
데이터 필드의 유형 및 하나 이상의 검색 옵션들에 적어도 부분적으로 기초하여, 데이터에 대한 인덱스 구성을 생성하게 하며;
데이터에 대한 인덱스 구성에 적어도 부분적으로 기초하여, 데이터에 대한 검색 인덱스를 생성하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
A22. 항목 A21에 있어서, 복수의 데이터 필드 유형들은 정수 유형, 텍스트 유형, 리터럴 유형, 지리적 위치 유형, 시간 유형, 날짜 유형, 또는 부동 소수점 수 유형 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
A23. 항목 A22에 있어서, 명령어들은 컴퓨팅 시스템으로 하여금 데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치 초과이지만 지정된 상부 리터럴 양 임계치 미만인 양의 알파벳 문자들을 가지는 것, 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 것에 기초하여 데이터 필드의 유형을 리터럴 유형인 것으로 결정하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
A24. 항목 A21에 있어서, 하나 이상의 검색 옵션들은 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 데이터 필드에 대한 패싯 카운트를 계산하는 옵션, 또는 관련 검색 질의에 응답하여 데이터 필드와 연관된 값을 제공하는 옵션 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
A25. 항목 A24에 있어서, 인에이블될 하나 이상의 검색 옵션들을 결정하는 것은 데이터 필드에 대한 패싯 카운트를 계산하는 옵션을 인에이블시키기로 결정하는 것을 포함하고, 이 결정은 데이터 필드와 연관된 적어도 하나의 값의 분량이 지정된 패싯 카운트 하부 임계치 초과이고 지정된 패싯 카운트 상부 임계치 미만인 것으로 결정하는 것에 적어도 부분적으로 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
B1. 동적 검색 파티셔닝(dynamic search partitioning)을 위한 컴퓨터 구현 방법으로서,
저장되고 있는 데이터의 양 또는 데이터가 네트워크 서비스에 의해 제공된 제1 파티션에서 조작되고 있는 레이트(rate) 중 적어도 하나를 모니터링하는 단계 - 제1 파티션은 네트워크 서비스에 의해 제공된 저장소 할당량에 포함되어 있음 -;
양 및 레이트 중 적어도 하나가, 각각, 지정된 양 임계치 또는 지정된 레이트 임계치를 초과하는 것을 검출하는 단계;
검출하는 단계에 응답하여, 제1 파티션의 크기를 증가시키는 것 또는 적어도 제2 파티션을 저장소 할당량에 추가하는 것 중 적어도 하나를 수행하는 단계 - 증가시키는 것 또는 추가하는 것 중 적어도 하나는 저장되고 있는 데이터의 양 또는 데이터가 조작되고 있는 레이트에 적어도 부분적으로 기초함 -;
증가시키는 것 또는 추가하는 것 중 적어도 하나 동안, 저장소 할당량과 연관된 네트워크 트래픽을 네트워크 서비스에 의해 제공된 캐시로 보내는 단계; 및
증가시키는 것 또는 추가하는 것 중 적어도 하나를 수행하는 것이 완료될 때, 네트워크 트래픽을 저장소 할당량으로 보내는 단계를 포함하는, 컴퓨터 구현 방법.
B2. 항목 B1에 있어서, 저장소 할당량에 대한 검색 인덱스를 모니터링하는 단계;
검색 인덱스의 크기가 지정된 인덱스 크기 임계치를 초과하는 것을 검출하는 단계; 및
저장소 할당량과 관련하여 증가시키는 것 또는 추가하는 것 중 적어도 하나를 반영하기 위해 저장소 할당량에 대한 검색 인덱스를 업데이트하는 단계를 포함하는, 컴퓨터 구현 방법.
B3. 항목 B1에 있어서, 제1 파티션의 크기가 최대 파티션 크기 임계치 미만인 경우, 제1 파티션의 크기를 증가시키는 것이 수행되고, 제1 파티션의 크기가 최대 파티션 크기 임계치에 있는 경우, 적어도 제2 파티션을 추가하는 것이 수행되는, 컴퓨터 구현 방법.
B4. 컴퓨터 구현 방법으로서,
네트워크화된 환경에서 저장소 할당량에서의 데이터 사용량을 모니터링하는 단계 - 저장소 할당량은 적어도 하나의 파티션을 포함하는 다수의 파티션들을 가짐 -;
저장소 할당량에 포함된 적어도 하나의 파티션에서의 데이터 사용량이 지정된 임계치를 초과하는지를 결정하는 단계;
적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정하는 단계;
저장소 할당량과 연관된 네트워크 트래픽을 크기 또는 개수 중 적어도 하나를 수정하는 것과 연관된 저장소 할당량의 일부분으로부터 다른 곳으로 보내는 단계; 및
수정이 완료될 때 네트워크 트래픽을 수정하는 것과 연관된 저장소 할당량의 일부분으로 보내는 단계를 포함하는, 컴퓨터 구현 방법.
B5. 항목 B4에 있어서, 저장소 할당량에 대한 검색 인덱스의 크기가 지정된 인덱스 크기 임계치를 초과하는 것을 검출하는 단계; 및
적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정한 것에 기초하여, 저장소 할당량에 대한 검색 인덱스를 업데이트하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
B6. 항목 B5에 있어서, 검색 인덱스를 업데이트하는 단계는 적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정한 것을 반영하기 위해 저장소 할당량에 대한 검색 인덱스를 재구축하는 단계를 포함하는, 컴퓨터 구현 방법.
B7. 항목 B4에 있어서, 데이터 사용량은 저장소 할당량에 저장되고 있는 데이터의 양 또는 데이터가 저장소 할당량에서 조작되고 있는 레이트 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
B8. 항목 B7에 있어서, 지정된 임계치는 지정된 양 임계치 또는 지정된 레이트 임계치 중 적어도 하나를 포함하고, 저장되고 있는 데이터의 양이 지정된 양 임계치를 초과하는 것 또는 데이터가 조작되고 있는 레이트가 지정된 레이트 임계치를 초과하는 것 중 적어도 하나가 발생할 때, 데이터 사용량이 지정된 임계치를 초과하는, 컴퓨터 구현 방법.
B9. 항목 B8에 있어서, 지정된 임계치는 과거 데이터 사용량에 관한 정보에 적어도 부분적으로 기초하여 계산되는, 컴퓨터 구현 방법.
B10. 항목 B4에 있어서, 저장소 할당량으로 보내지는 네트워크 트래픽의 양이 지정된 트래픽 임계치 초과인 것으로 결정하는 단계; 및
네트워크 트래픽의 양에 기초하여 저장소 할당량을 수정하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
B11. 항목 B10에 있어서, 네트워크 트래픽은 저장소 할당량에 저장된 데이터를 검색하기 위한 검색 질의 트래픽을 포함하는, 컴퓨터 구현 방법.
B12. 항목 B10에 있어서, 네트워크 트래픽의 양에 기초하여 저장소 할당량을 수정하는 단계는 적어도 하나의 파티션의 크기를 수정하는 단계, 파티션들의 개수를 수정하는 단계, 또는 파티션들의 개수에 포함된 적어도 하나의 파티션을 상이한 규격들을 가지는 적어도 하나의 파티션으로 대체하는 단계 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
B13. 항목 B12에 있어서, 상이한 규격들은 상이한 CPU 능력, 상이한 RAM 용량, 상이한 하드 디스크 공간 용량, 또는 상이한 대역폭 용량 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
B14. 항목 B4에 있어서, 적어도 하나의 파티션의 크기 또는 파티션들의 개수 중 적어도 하나를 수정하는 단계는 적어도 하나의 파티션의 크기 또는 파티션들의 개수 중 적어도 하나를 증가시키는 단계를 포함하고, 적어도 하나의 파티션의 크기가 최대 파티션 크기 임계치 미만인 경우, 적어도 하나의 파티션의 크기를 증가시키는 것이 수행되고, 적어도 하나의 파티션의 크기가 최대 파티션 크기 임계치에 있는 경우, 파티션들의 개수를 증가시키는 것이 수행되는, 컴퓨터 구현 방법.
B15. 항목 B4에 있어서, 적어도 하나의 파티션의 크기 또는 파티션들의 개수 중 적어도 하나를 수정하는 단계는 적어도 하나의 파티션의 크기 또는 파티션들의 개수 중 적어도 하나를 감소시키는 단계를 포함하고, 파티션들의 개수가 2개 이상의 파티션인 경우, 파티션들의 개수를 감소시키는 것이 수행되며, 파티션들의 개수가 1개의 파티션인 경우, 적어도 하나의 파티션의 크기를 감소시키는 것이 수행되는, 컴퓨터 구현 방법.
B16. 항목 B4에 있어서, 저장소 할당량의 CPU 사용량을 결정하는 단계를 추가로 포함하고, 크기 또는 개수 중 적어도 하나를 수정하는 단계는 저장소 할당량에서의 데이터 사용량 또는 저장소 할당량의 결정된 CPU 사용량 중 적어도 하나에 기초하는, 컴퓨터 구현 방법.
B17. 항목 B4에 있어서, 데이터 사용량과 연관된 구성 또는 사용자-개시 입력 중 적어도 하나에 기초하여, 저장소 할당량의 구성을 수정하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
B18. 항목 B4에 있어서, 저장소 할당량에 이용가능한 자원들에 기초하여, 크기 또는 개수 중 적어도 하나를 수정하는 것을 언제 수행할지를 결정하는 단계를 추가로 포함하는, 컴퓨터 구현 방법.
B19. 시스템으로서,
적어도 하나의 파티션을 포함하는 다수의 파티션들을 가지는 저장소 할당량;
적어도 하나의 프로세서; 및
명령어들을 포함하는 메모리 디바이스를 포함하고, 이 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 시스템으로 하여금
저장소 할당량에서의 데이터 사용량을 모니터링하게 하고;
저장소 할당량에 포함된 적어도 하나의 파티션에서의 데이터 사용량이 지정된 임계치를 초과하는지를 결정하게 하며;
적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정하게 하고;
저장소 할당량과 연관된 네트워크 트래픽을 크기 또는 개수 중 적어도 하나를 수정하는 것과 연관된 저장소 할당량의 일부분으로부터 다른 곳으로 보내게 하며;
수정이 완료될 때 네트워크 트래픽을 수정하는 것과 연관된 저장소 할당량의 일부분으로 보내게 하는, 시스템.
B20. 항목 B19에 있어서, 크기 또는 개수 중 적어도 하나를 수정하는 동안 네트워크 트래픽이 저장소 할당량의 일부분으로부터 다른 곳으로 보내지는 것 및 크기 또는 개수 중 적어도 하나를 수정하는 것이 완료될 때 네트워크 트래픽이 저장소 할당량의 일부분으로 보내지는 것을 용이하게 하도록 구성된 적어도 하나의 부하 분산기(load balancer)를 추가로 포함하는, 시스템.
B21. 항목 B20에 있어서, 적어도 하나의 부하 분산기는 저장소 할당량에 포함된 개수의 파티션들에 걸쳐서 네트워크 트래픽을 보내도록 구성되어 있는, 시스템.
B22. 항목 B19에 있어서, 저장소 할당량에서의 데이터 사용량을 모니터링하는 것 및 저장소 할당량에 포함된 적어도 하나의 파티션에서의 데이터 사용량이 지정된 임계치를 초과하는지를 결정하는 것을 용이하게 하도록 구성된 적어도 하나의 모니터 모듈을 추가로 포함하는, 시스템.
B23. 요소들을 식별하는 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어들은, 컴퓨팅 시스템의 프로세서에 의해 실행될 때, 컴퓨팅 시스템으로 하여금
네트워크화된 환경에서 저장소 할당량에서의 데이터 사용량을 모니터링하게 하고 - 저장소 할당량은 적어도 하나의 파티션을 포함하는 다수의 파티션들을 가짐 -;
저장소 할당량에 포함된 적어도 하나의 파티션에서의 데이터 사용량이 지정된 임계치를 초과하는지를 결정하게 하며;
적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정하게 하고;
저장소 할당량과 연관된 네트워크 트래픽을 크기 또는 개수 중 적어도 하나를 수정하는 것과 연관된 저장소 할당량의 일부분으로부터 다른 곳으로 보내게 하며;
수정이 완료될 때 네트워크 트래픽을 수정하는 것과 연관된 저장소 할당량의 일부분으로 보내게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
B24. 항목 B23에 있어서, 명령어들은 컴퓨팅 시스템으로 하여금 추가적으로 저장소 할당량에 대한 검색 인덱스의 크기가 지정된 인덱스 크기 임계치를 초과하는 것을 검출하게 하고; 적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정한 것에 기초하여, 저장소 할당량에 대한 검색 인덱스를 업데이트하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
B25. 항목 B24에 있어서, 검색 인덱스를 업데이트하는 것은 적어도 하나의 파티션의 크기 또는 저장소 할당량에 포함된 파티션들의 개수 중 적어도 하나를 수정한 것을 반영하기 위해 저장소 할당량에 대한 검색 인덱스를 재구축하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.

Claims (24)

  1. 네트워크화된 환경에서의 검색가능 데이터에 대한 인덱스 구성을 위한 컴퓨터 구현 방법으로서,
    복수의 데이터 필드들을 포함하는 데이터를 수신하는 단계;
    상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 이름을 결정하는 단계;
    복수의 필드 유형들 중, 상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 필드 유형을 결정하는 단계 - 상기 복수의 필드 유형들은 정수 유형, 리터럴 유형, 또는 텍스트 유형 중 적어도 하나를 포함함 -;
    상기 데이터 필드들 각각에 연관된 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터 필드들 각각에 대한 하나 이상의 검색 옵션들을 인에이블시킬지를 결정하는 단계 - 상기 하나 이상의 검색 옵션들은 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 상기 각자의 데이터 필드에 대한 패싯 카운트(facet count)를 계산하는 옵션, 또는 상기 각자의 데이터 필드와 연관된 하나 이상의 값들을 제공하는 옵션 중 적어도 하나를 포함함 -;
    각각의 데이터 필드의 상기 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터에 대한 인덱스 구성을 자동으로 생성하는 단계; 및
    상기 인덱스 구성을 이용하는 상기 데이터에 대한 검색 인덱스를 생성하는 단계 - 상기 검색 인덱스는 상기 각자의 데이터 필드를 상기 검색 인덱스 내에 포함시키는 상기 옵션이 인에이블된 각각의 데이터 필드에 대한 상기 데이터의 일부분을 포함함 -;
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 데이터는 제1 포맷으로 되어 있고,
    상기 데이터를 상기 제1 포맷으로부터 상기 검색 인덱스와 호환되는 제2 포맷으로 변환시키는 단계; 및
    상기 제2 포맷으로 변환된 상기 데이터를 하나 이상의 저장소 할당량(storage allocation)들에 저장하는 단계
    를 추가로 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 데이터를 상기 제1 포맷으로부터 상기 제2 포맷으로 변환시키는 단계는
    상기 제1 포맷과 상기 제2 포맷을 비교하는 단계; 및
    상기 제1 포맷과 연관된 적어도 하나의 데이터 필드를 상기 제2 포맷과 연관된 적어도 하나의 데이터 필드에 대응하도록 수정하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  4. 제2항에 있어서,
    상기 제2 포맷이 SDF(Search Data Format)인, 컴퓨터 구현 방법.
  5. 시스템으로서,
    적어도 하나의 통신 송수신기;
    하나 이상의 저장소 할당량들;
    적어도 하나의 프로세서; 및
    명령어들을 포함하는 메모리 디바이스를 포함하고, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금
    상기 적어도 하나의 통신 송수신기를 통해, 데이터를 수신하게 하고 - 상기 데이터는 복수의 데이터 필드들을 포함함 -;
    상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 이름을 결정하게 하고;
    복수의 필드 유형들 중, 상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 필드 유형을 결정하게 하고 - 상기 복수의 필드 유형들은 정수 유형, 리터럴 유형, 또는 텍스트 유형 중 적어도 하나를 포함함 -;
    상기 데이터 필드들 각각에 연관된 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터 필드들 각각에 대한 하나 이상의 검색 옵션들을 인에이블시킬지를 결정하게 하고 - 상기 하나 이상의 검색 옵션들은 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 상기 각자의 데이터 필드에 대한 패싯 카운트를 계산하는 옵션, 또는 상기 각자의 데이터 필드와 연관된 하나 이상의 값들을 제공하는 옵션 중 적어도 하나를 포함함 -;
    각각의 데이터 필드의 상기 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터에 대한 인덱스 구성을 자동으로 생성하게 하고;
    상기 인덱스 구성을 이용하는 상기 데이터에 대한 검색 인덱스를 생성하게 하는 - 상기 검색 인덱스는 상기 각자의 데이터 필드를 상기 검색 인덱스 내에 포함시키는 상기 옵션이 인에이블된 각각의 데이터 필드에 대한 상기 데이터의 일부분을 포함함 -,
    시스템.
  6. 제5항에 있어서,
    데이터 필드의 상기 복수의 유형들은 지리적 위치(geolocation) 유형, 시간 유형, 날짜 유형, 또는 부동 소수점 수(floating point number) 유형 중 적어도 하나를 더 포함하는, 시스템.
  7. 제5항에 있어서,
    상기 데이터 필드의 상기 유형을 결정하는 것은
    상기 데이터 필드와 연관된 값이 지정된 정수 양 임계치(integer amount threshold)를 초과하는 양(amount)의 정수 문자들을 가지는 것으로 결정하는 것; 및
    상기 데이터 필드의 상기 유형을 상기 정수 유형인 것으로 결정하는 것
    을 포함하는, 시스템.
  8. 제5항에 있어서,
    상기 데이터 필드의 상기 유형을 결정하는 것은
    상기 데이터 필드와 연관된 값이 지정된 텍스트 양 임계치(text amount threshold)를 초과하는 양의 영숫자 문자들을 가지는 것, 상기 데이터 필드와 연관된 개별 값들의 개수가 지정된 텍스트 개별 양 임계치(text distinct amount threshold) 초과인 것, 개별 값들의 퍼센트가 지정된 텍스트 개별 퍼센트 임계치(text distinct percentage threshold) 초과인 것, 또는 값들의 길이가 지정된 텍스트 길이 임계치 초과인 것 중 적어도 하나를 결정하는 것; 및
    상기 데이터 필드의 상기 유형을 상기 텍스트 유형인 것으로 결정하는 것
    을 포함하는, 시스템.
  9. 제5항에 있어서,
    상기 데이터 필드의 상기 유형을 결정하는 것은
    상기 데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치(lower literal amount threshold) 초과이지만 지정된 상부 리터럴 양 임계치(upper literal amount threshold) 미만인 양의 알파벳 문자들을 가지는 것, 상기 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치(literal distinct amount threshold) 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 것; 및
    상기 데이터 필드의 상기 유형을 상기 리터럴 유형인 것으로 결정하는 것
    을 포함하는, 시스템.
  10. 제5항에 있어서,
    상기 하나 이상의 검색 옵션들은 상기 데이터 필드를 생성될 상기 검색 인덱스에 포함시키는 옵션, 상기 데이터 필드에 대한 패싯 카운트(facet count)를 계산하는 옵션, 또는 관련 검색 질의에 응답하여 상기 데이터 필드와 연관된 값을 제공하는 옵션 중 적어도 하나를 포함하는, 시스템.
  11. 제10항에 있어서,
    상기 인에이블될 하나 이상의 검색 옵션들을 결정하는 것은
    상기 데이터 필드를 생성될 상기 검색 인덱스에 포함시키는 상기 옵션을 인에이블시키기로 결정하는 것을 포함하고,
    상기 결정은 상기 데이터 필드가 검색 인덱스에 포함되어야 한다는 것을 나타내는, 상기 데이터 필드에 포함된, 신호를 수신하는 것 또는 상기 데이터 필드의 유형을 리터럴 유형인 것으로 결정하는 것 중 적어도 하나에 적어도 부분적으로 기초하는, 시스템.
  12. 제10항에 있어서,
    상기 인에이블될 하나 이상의 검색 옵션들을 결정하는 것은
    상기 데이터 필드에 대한 상기 패싯 카운트를 계산하는 상기 옵션을 인에이블시키로 결정하는 것을 포함하고,
    상기 결정은 상기 데이터 필드와 연관된 복수의 값들의 분포에 대한 분량(quantity)이 지정된 패싯 카운트 상부 임계치 미만인 것으로 결정하는 것에 적어도 부분적으로 기초하는, 시스템.
  13. 제10항에 있어서,
    상기 인에이블될 하나 이상의 검색 옵션들을 결정하는 것은
    상기 관련 검색 질의에 응답하여 상기 데이터 필드와 연관된 상기 값을 제공하는 상기 옵션을 인에이블시키기로 결정하는 것을 포함하고,
    상기 결정은 상기 데이터 필드와 연관된 상기 값이 제공되어야 한다는 것을 나타내는, 상기 데이터 필드에 포함된, 신호를 수신하는 것 또는 상기 데이터 필드와 연관된 상기 값의 길이가 지정된 반환 값 길이 임계치 미만인 것으로 결정하는 것 중 적어도 하나에 적어도 부분적으로 기초하는, 시스템.
  14. 제5항에 있어서,
    상기 명령어들은, 상기 시스템으로 하여금 추가로
    상기 데이터, 상기 인덱스 구성, 또는 하나 이상의 검색 질의들에 의해 검색가능하게 될 상기 인덱스 중 적어도 하나를 제공하게 하는, 시스템.
  15. 제5항에 있어서,
    상기 명령어들은, 상기 시스템으로 하여금 추가로
    하나 이상의 사용자-개시 입력들에 적어도 부분적으로 기초하여, 상기 인덱스 구성을 수정하게 하는, 시스템.
  16. 제5항에 있어서,
    상기 데이터는 제1 포맷으로 되어 있고,
    상기 명령어들은, 상기 시스템으로 하여금 추가로
    상기 데이터를 상기 제1 포맷으로부터 상기 검색 인덱스와 호환되는 제2 포맷으로 변환시키게 하고;
    상기 제2 포맷으로 변환된 상기 데이터를 상기 하나 이상의 저장소 할당량(storage allocation)들에 저장하게 하는, 시스템.
  17. 제16항에 있어서,
    상기 명령어들은, 상기 시스템으로 하여금
    상기 제1 포맷과 상기 제2 포맷을 비교하고, 상기 제1 포맷과 연관된 적어도 하나의 데이터 필드를 상기 제2 포맷과 연관된 적어도 하나의 데이터 필드에 대응하도록 수정하는 것에 기초하여 상기 데이터를 상기 제1 포맷으로부터 상기 제2 포맷으로 변환시키게 하는, 시스템.
  18. 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령어들은, 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금
    복수의 데이터 필드들을 포함하는 데이터를 수신하게 하고;
    상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 이름을 결정하게 하고;
    복수의 필드 유형들 중, 상기 복수의 데이터 필드들에서의 각각의 데이터 필드와 연관된 필드 유형을 결정하게 하고 - 상기 복수의 필드 유형들은 정수 유형, 리터럴 유형, 또는 텍스트 유형 중 적어도 하나를 포함함 -;
    상기 데이터 필드들 각각에 연관된 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터 필드들 각각에 대한 하나 이상의 검색 옵션들을 인에이블시킬지를 결정하게 하고 - 상기 하나 이상의 검색 옵션들은 각자의 데이터 필드를 생성될 검색 인덱스에 포함시키는 옵션, 상기 각자의 데이터 필드에 대한 패싯 카운트(facet count)를 계산하는 옵션, 또는 상기 각자의 데이터 필드와 연관된 하나 이상의 값들을 제공하는 옵션 중 적어도 하나를 포함함 -;
    각각의 데이터 필드의 상기 각자의 필드 유형에 적어도 부분적으로 기초하여, 상기 데이터에 대한 인덱스 구성을 자동으로 생성하게 하고;
    상기 인덱스 구성을 이용하는 상기 데이터에 대한 검색 인덱스를 생성하게 하는 - 상기 검색 인덱스는 상기 각자의 데이터 필드를 상기 검색 인덱스 내에 포함시키는 상기 옵션이 인에이블된 각각의 데이터 필드에 대한 상기 데이터의 일부분을 포함함 -,
    비일시적 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 데이터는 제1 포맷으로 되어 있고,
    상기 명령어들은, 상기 시스템으로 하여금 추가로
    상기 데이터를 상기 제1 포맷으로부터 상기 검색 인덱스와 호환되는 제2 포맷으로 변환시키게 하고;
    상기 제2 포맷으로 변환된 상기 데이터를 상기 하나 이상의 저장소 할당량(storage allocation)들에 저장하게 하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 데이터를 상기 제1 포맷으로부터 상기 제2 포맷으로 변환시키는 것은
    상기 제1 포맷과 상기 제2 포맷을 비교하는 것; 및
    상기 제1 포맷과 연관된 적어도 하나의 데이터 태그를 상기 제2 포맷과 연관된 적어도 하나의 데이터 태그에 대응하도록 수정하는 것
    을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  21. 제18항에 있어서,
    데이터 필드의 상기 복수의 유형들은 지리적 위치(geolocation) 유형, 시간 유형, 날짜 유형, 또는 부동 소수점 수(floating point number) 유형 중 적어도 하나를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  22. 제18항에 있어서,
    상기 명령어들은, 상기 컴퓨팅 시스템으로 하여금
    상기 데이터 필드와 연관된 값이 지정된 하부 리터럴 양 임계치(lower literal amount threshold) 초과이지만 지정된 상부 리터럴 양 임계치(upper literal amount threshold) 미만인 양의 알파벳 문자들을 가지는 것, 상기 데이터 필드와 연관된 개별 값들의 개수가 지정된 리터럴 개별 양 임계치(literal distinct amount threshold) 미만인 것, 개별 값들의 퍼센트가 지정된 리터럴 개별 퍼센트 임계치 미만인 것, 또는 값들의 길이가 지정된 리터럴 길이 임계치 미만인 것 중 적어도 하나를 결정하는 것에 기초하여 상기 데이터 필드의 상기 유형을 상기 리터럴 유형인 것으로 결정하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  23. 제18항에 있어서,
    상기 하나 이상의 검색 옵션들은 상기 데이터 필드를 생성될 상기 검색 인덱스에 포함시키는 옵션, 상기 데이터 필드에 대한 패싯 카운트(facet count)를 계산하는 옵션, 또는 관련 검색 질의에 응답하여 상기 데이터 필드와 연관된 값을 제공하는 옵션 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  24. 제23항에 있어서,
    상기 인에이블될 하나 이상의 검색 옵션들을 결정하는 것은
    상기 데이터 필드에 대한 상기 패싯 카운트를 계산하는 상기 옵션을 인에이블시키로 결정하는 것을 포함하고,
    상기 결정은 상기 데이터 필드와 연관된 적어도 하나의 값에 대한 분량(quantity)이 지정된 패싯 카운트 하부 임계치 초과이고 지정된 패싯 카운트 상부 임계치 미만인 것으로 결정하는 것에 적어도 부분적으로 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020177012552A 2012-10-12 2013-10-12 네트워크에서의 검색가능 데이터에 대한 인덱스 구성 KR101782302B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/650,961 US9047326B2 (en) 2012-10-12 2012-10-12 Index configuration for searchable data in network
US13/650,931 US9507750B2 (en) 2012-10-12 2012-10-12 Dynamic search partitioning
US13/650,961 2012-10-12
US13/650,931 2012-10-12
PCT/US2013/064731 WO2014059394A1 (en) 2012-10-12 2013-10-12 Index configuration for searchable data in network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012030A Division KR101737246B1 (ko) 2012-10-12 2013-10-12 네트워크에서의 검색가능 데이터에 대한 인덱스 구성

Publications (2)

Publication Number Publication Date
KR20170054579A true KR20170054579A (ko) 2017-05-17
KR101782302B1 KR101782302B1 (ko) 2017-09-26

Family

ID=50477970

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157012030A KR101737246B1 (ko) 2012-10-12 2013-10-12 네트워크에서의 검색가능 데이터에 대한 인덱스 구성
KR1020177012552A KR101782302B1 (ko) 2012-10-12 2013-10-12 네트워크에서의 검색가능 데이터에 대한 인덱스 구성

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157012030A KR101737246B1 (ko) 2012-10-12 2013-10-12 네트워크에서의 검색가능 데이터에 대한 인덱스 구성

Country Status (10)

Country Link
EP (1) EP2907034A4 (ko)
JP (2) JP2015532493A (ko)
KR (2) KR101737246B1 (ko)
CN (2) CN110096502A (ko)
AU (3) AU2013328901B2 (ko)
BR (1) BR112015008146A2 (ko)
CA (1) CA2888116C (ko)
IN (1) IN2015DN03160A (ko)
SG (2) SG10201606363SA (ko)
WO (1) WO2014059394A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047326B2 (en) 2012-10-12 2015-06-02 A9.Com, Inc. Index configuration for searchable data in network
US9507750B2 (en) 2012-10-12 2016-11-29 A9.Com, Inc. Dynamic search partitioning
CN105979014A (zh) * 2016-07-15 2016-09-28 柳州健科技有限公司 基于局域网的网络数据系统
CN105979016A (zh) * 2016-07-15 2016-09-28 柳州健科技有限公司 局域网络数据服务系统
CN105979015A (zh) * 2016-07-15 2016-09-28 柳州健科技有限公司 基于局域网的网络数据服务平台
CN105978739A (zh) * 2016-07-15 2016-09-28 柳州健科技有限公司 基于局域网的网络数据平台
CN106131189A (zh) * 2016-07-15 2016-11-16 柳州健科技有限公司 基于局域网的网络平台
CN105978913A (zh) * 2016-07-15 2016-09-28 柳州健科技有限公司 网络服务系统
CN106131188A (zh) * 2016-07-15 2016-11-16 柳州健科技有限公司 局域网络系统
CN106060082A (zh) * 2016-07-16 2016-10-26 柳州健科技有限公司 基于局域网的具有数据监控功能的网络服务平台
CN106131190A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 基于局域网的具有数据监控功能的网络平台
CN106131196A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 基于局域网的具有自学习功能的网络系统
CN106060081A (zh) * 2016-07-16 2016-10-26 柳州健科技有限公司 具有数据监控功能的网络服务平台
CN106131194A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 具有自学习功能的局域网络平台
CN106060083A (zh) * 2016-07-16 2016-10-26 柳州健科技有限公司 具有数据监控功能的网络服务系统
CN106131192A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 基于局域网的具有数据监控功能的网络系统
CN106131193A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 具有自学习功能的局域网络服务平台
CN106131191A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 具有数据监控功能的局域网络数据服务系统
CN106101024A (zh) * 2016-07-16 2016-11-09 柳州健科技有限公司 具有数据监控功能的局域网络数据系统
CN106131195A (zh) * 2016-07-16 2016-11-16 柳州健科技有限公司 具有数据监控功能的局域网络系统
CN107977381B (zh) * 2016-10-24 2021-08-27 华为技术有限公司 数据配置方法、索引管理方法、相关装置以及计算设备
CN110019191A (zh) * 2017-09-21 2019-07-16 阿里巴巴集团控股有限公司 数据库信息处理方法及装置
CN108881147B (zh) * 2017-12-29 2019-07-05 视联动力信息技术股份有限公司 一种视联网的数据处理方法和装置
CN110134661A (zh) * 2019-05-22 2019-08-16 东北大学 一种面向刻面的学术大数据存储查询方法
CN112306604B (zh) * 2020-08-21 2022-09-23 海信视像科技股份有限公司 一种传输文件的进度显示方法及显示设备
US11658917B2 (en) 2021-04-09 2023-05-23 Tekion Corp Selective offloading of bandwidth to enable large-scale data indexing
CN117596176B (zh) * 2024-01-17 2024-04-19 苏州元脑智能科技有限公司 一种网络状态测量方法、装置、设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1143349A1 (en) * 2000-04-07 2001-10-10 IconParc GmbH Method and apparatus for generating index data for search engines
US7716168B2 (en) * 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US8341345B2 (en) * 2005-08-08 2012-12-25 International Business Machines Corporation System and method for providing content based anticipative storage management
US7668825B2 (en) * 2005-08-26 2010-02-23 Convera Corporation Search system and method
JP4772569B2 (ja) * 2006-04-07 2011-09-14 株式会社日立製作所 共通名前空間においてディレクトリ単位のマイグレーションを実行するシステム及び方法
US8214345B2 (en) * 2006-10-05 2012-07-03 International Business Machines Corporation Custom constraints for faceted exploration
WO2008044542A1 (fr) * 2006-10-06 2008-04-17 Nec Corporation Système et procédé de recherche d'informations et programme
US8965807B1 (en) * 2007-05-21 2015-02-24 Amazon Technologies, Inc. Selecting and providing items in a media consumption system
US7788233B1 (en) * 2007-07-05 2010-08-31 Amazon Technologies, Inc. Data store replication for entity based partition
US20100011368A1 (en) * 2008-07-09 2010-01-14 Hiroshi Arakawa Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms
JP4762289B2 (ja) * 2008-10-01 2011-08-31 株式会社日立製作所 特定パターンデータが格納される仮想ボリュームへの記憶領域の割り当てを制御するストレージシステム
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
EP2396717A1 (en) * 2009-02-11 2011-12-21 Infinidat Ltd Virtualized storage system and method of operating it
US8250026B2 (en) * 2009-03-06 2012-08-21 Peoplechart Corporation Combining medical information captured in structured and unstructured data formats for use or display in a user application, interface, or view
US20110131202A1 (en) * 2009-12-02 2011-06-02 International Business Machines Corporation Exploration of item consumption by customers
US8930332B2 (en) * 2010-03-12 2015-01-06 Salesforce.Com, Inc. Method and system for partitioning search indexes
JPWO2011118427A1 (ja) * 2010-03-24 2013-07-04 日本電気株式会社 クエリ装置、クエリ分割方法、及びクエリ分割用プログラム
US8190593B1 (en) * 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
US8386711B2 (en) * 2010-08-10 2013-02-26 Hitachi, Ltd. Management method and management system for computer system
WO2012072879A1 (en) * 2010-11-30 2012-06-07 Nokia Corporation Method and apparatus for updating a partitioned index
US8495331B2 (en) * 2010-12-22 2013-07-23 Hitachi, Ltd. Storage apparatus and storage management method for storing entries in management tables
US8620897B2 (en) * 2011-03-11 2013-12-31 Microsoft Corporation Indexing and searching features including using reusable index fields

Also Published As

Publication number Publication date
AU2013328901B2 (en) 2016-07-28
AU2017245374B2 (en) 2018-08-09
EP2907034A1 (en) 2015-08-19
AU2013328901A1 (en) 2015-05-14
AU2017245374A1 (en) 2018-01-18
KR101782302B1 (ko) 2017-09-26
CA2888116C (en) 2018-03-27
EP2907034A4 (en) 2016-05-18
BR112015008146A2 (pt) 2017-07-04
WO2014059394A1 (en) 2014-04-17
AU2016231488A1 (en) 2016-10-06
JP2017050012A (ja) 2017-03-09
KR101737246B1 (ko) 2017-05-17
KR20150066575A (ko) 2015-06-16
SG10201606363SA (en) 2016-09-29
JP2015532493A (ja) 2015-11-09
CN110096502A (zh) 2019-08-06
JP6339155B2 (ja) 2018-06-06
CN104823169A (zh) 2015-08-05
AU2016231488B2 (en) 2017-09-21
SG11201502828PA (en) 2015-05-28
IN2015DN03160A (ko) 2015-10-02
CA2888116A1 (en) 2014-04-17
CN104823169B (zh) 2018-12-21

Similar Documents

Publication Publication Date Title
KR101782302B1 (ko) 네트워크에서의 검색가능 데이터에 대한 인덱스 구성
US11595477B2 (en) Cloud storage methods and systems
US11893703B1 (en) Precise manipulation of virtual object position in an extended reality environment
US9411839B2 (en) Index configuration for searchable data in network
US11410403B1 (en) Precise scaling of virtual objects in an extended reality environment
US9507750B2 (en) Dynamic search partitioning
KR102626764B1 (ko) 상호작용형 정보 인터페이스
US10848434B2 (en) Performance management for query processing
US10075508B2 (en) Application-centric socialization
KR101976816B1 (ko) SaaS 어플리케이션 연동 서비스의 제공장치 및 그 제공방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant