KR101790766B1 - 데이터의 검색 방법, 장치 및 단말기 - Google Patents

데이터의 검색 방법, 장치 및 단말기 Download PDF

Info

Publication number
KR101790766B1
KR101790766B1 KR1020167005126A KR20167005126A KR101790766B1 KR 101790766 B1 KR101790766 B1 KR 101790766B1 KR 1020167005126 A KR1020167005126 A KR 1020167005126A KR 20167005126 A KR20167005126 A KR 20167005126A KR 101790766 B1 KR101790766 B1 KR 101790766B1
Authority
KR
South Korea
Prior art keywords
index
data
module
user identifier
submodule
Prior art date
Application number
KR1020167005126A
Other languages
English (en)
Other versions
KR20170035349A (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 KR20170035349A publication Critical patent/KR20170035349A/ko
Application granted granted Critical
Publication of KR101790766B1 publication Critical patent/KR101790766B1/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
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • 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/24Querying
    • G06F16/245Query processing
    • 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/14Details of searching files based on file metadata
    • G06F17/30424
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • G06F17/30312
    • G06F17/30587
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터의 검색 방법, 장치 및 단말기를 제공하며, 상기 방법은 비 관계형 데이터베이스에서 제1사용자 식별자에 대응되는 제1직렬화 데이터를 판독하는 단계와; 상기 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하는 단계와; 상기 제1 색인에 기초하여 검색하는 단계를 포함한다. 검색의 범위는 전체 사용자가 아니라, 사용자 식별자에 대응되는 데이터이므로, 검색의 범위를 크게 줄일 수 있어, 검색의 속도와 검색 성능을 제고하여, 사용자 체험감을 개선할 수 있다.

Description

데이터의 검색 방법, 장치 및 단말기{METHOD, DEVICE AND TERMINAL FOR DATA SEARCH}
본 출원은 출원 번호가 201510531673.4이고, 출원일 2015년 08월 26일인 중국 특허 출원에 기초하여 제출하는 것이며, 상기 중국 특허 출원의 우선권을 주장하고, 상기 중국 특허 출원의 모든 내용은 참고로 본 출원에 인용된다.
본발명은 데이터 처리 기술분야에 관한 것이고, 구체적으로는 데이터의 검색 방법, 장치 및 단말기에 관한 것이다.
단말기의 기능이 많아짐에 따라, 사용자가 단말기를 사용할때 생성한 데이터도 점점 많아진다. 단말기의 램을 되도록 적게 차지하고 단말기의 기억공간의 과소로 인해 사용 성능에 영향을 주는 것을 방지하기 위하여, 사용자는 개인 데이터를 클라우드에 동기화하여 기억할 수 있다. 일반적으로, 클라우드 서버는 사용자에게, 예를 들어, 사용자가 제공한 키워드에 기초하여 만여개의 메시지에서 당해 키워드를 포함하는 메시지를 검색하는, 데이터 검색 기능을 제공한다.
관련기술에 있어서, 클라우드 서버는 구조화 조회 언어 (Structured Query Language,SQL)에 기초하여 사용자 개인 데이터의 검색을 실현 할 수 있다. 그러나, SQL는 확장이 쉽지 않기 때문에, 특히 사용자 수가 많아 클라우드에 기억한 개인 데이터의 총 량이 매우 많을 경우, 서버 검색의 범위는 모든 사용자의 개인 데이터이므로, 검색 효율이 낮고, 검색 속도가 늦고, 안전성도 저하되기에 사용자의 체험감이 좋지 않다.
본 발명은 관련된 기술에서 서버가 사용자의 데이터에 대하여 검색을 할 때, 검색 효율이 낮고 검색 속도가 늦은 문제를 해결하기 위하여, 데이터의 검색 방법, 장치 및 단말기를 제공한다.
본 발명의 실시예의 한 측면에 의하면, 비 관계형 데이터베이스에서 제1 사용자에 대응되는 제1 직렬화 데이터를 판독하는 단계와; 상기 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하는 단계와; 상기 제1 색인에 기초하여 검색하는 단계를 포함하는 것을 특징으로 하는 데이터의 검색 방법을 제공한다.
상기 비 관계형 데이터베이스에서 제1 사용자에 대응되는 제1 직렬화 데이터를 판독하는 단계 전에, 제1 사용자 데이터와, 상기 제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득하는 단계와; 상기 제1 사용자 데이터에 대하여, 제1 색인을 생성하는 단계와; 상기 제1 색인을 직렬화하여, 제1 이진 스트링을 획득하는 단계와; 상기 제1 이진 스트링을 제1 사용자 식별자와 관련하여 상기 비 관계형 데이터베이스에 기억하고, 상기 제1 직렬화 데이터는 상기 제1 이진 스트링을 포함하는 단계를 포함할 수 있다.
상기의 상기 제1 색인에 기초하여 검색하는 단계는, 상기 제1 색인을 램에 기억하는 단계와; 램에서 상기 제1 색인에 기초하여 검색하는 단계를 포함할 수 있다.
상기 방법은 수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하는 단계 - 상기 수정 요청은 상기 제2 사용자 식별자를 포함함 - 를 더 포함할 수 있다.
상기의 수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하는 단계는, 비 관계형 데이터베이스에서 상기 제2 사용자 식별자에 대응되는 제2 직렬화 데이터를 판독하는 단계와; 상기 제2 직렬화 데이터를 역직렬화하여, 제2 색인을 획득하는 단계와; 상기 수정 요청에 기초하여 상기 제2 색인을 수정하는 단계와; 수정후의 제2 색인을 직렬화하여 수정후의 제2 직렬화 데이터를 획득하는 단계와; 상기 비 관계형 데이터베이스에 기억된 제2 직렬화 데이터를 수정후의 제2 직렬화 데이터로 업데이트하는 단계를 포함할 수 있다.
상기의 상기 수정 요청에 기초하여 상기 제2 색인을 수정하는 단계는, 상기 제2 색인을 램에 기억하는 단계와; 램에서 상기 제2 색인을 수정하는 단계를 포함할 수 있다.
본 발명의 실시예의 제2 측면에 의하면, 제1 판독모듈, 제1 처리모듈 및 검색모듈을 포함하며, 상기 제1 판독모듈은, 비 관계형 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하도록 구성되며; 상기 제1 처리모듈은, 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하도록 구성되며; 상기 검색모듈은, 상기 제1 색인에 기초하여 검색하도록 구성된 데이터의 검색 장치를 제공한다.
상기 장치는, 획득모듈, 색인 생성모듈, 제2 처리모듈 및 기억모듈을 더 포함할 수 있으며, 상기 획득모듈은, 제1 사용자 데이터와, 상기제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득하도록 구성되며; 상기 색인 생성모듈은, 상기 제1 사용자 데이터에 대하여 색인을 생성하도록 구성되며; 상기 제2 처리모듈은, 상기 색인을 직렬화하여 제1 이진 스트링을 획득하도록 구성되며; 상기 기억모듈은, 상기 제1 이진 스트링을 제1 사용자 식별자와 관련하여 비 관계형 데이터베이스에 기억하도록 구성 되고, 상기 제1 직렬화 데이터는 상기 제1 이진 스트링을 포함한다.
상기 검색모듈은 제1 기억 서브모듈 및 검색 서브모듈를 더 포함할 수 있으며, 제1 기억 서브모듈은, 제1 색인을 램에 기억하도록 구성되며; 검색 서브모듈은 램에서 제1 색인에 기초하여 검색하도록 구성된다.
상기 장치는, 수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하는 수정모듈 - 상기 수정 요청은 상기 제2 사용자 식별자를 포함함 - 을 더 포함할 수 있다.
상기 수정모듈은 판독 서브모듈, 제1 처리 서브모듈, 수정 서브모듈, 제2 처리 서브모듈 및 업데이트 서브모듈을 더 포함할 수 있으며, 상기 판독 서브모듈은 비 관계형 데이터베이스에서 상기 제2 사용자 식별자에 대응되는 제2 직렬화 데이터를 판독하도록 구성되고; 상기 제1 처리 서브모듈은, 상기 제2 직렬화 데이터를 역직렬화하여 제2 색인을 획득하도록 구성되고; 상기 수정 서브모듈은, 수정 요청에 기초하여 제2 색인을 수정하도록 구성되고; 상기 제2 처리 서브모듈은, 수정후의 제2 색인을 직렬화하여 수정후의 제2 직렬화 데이터를 획득하도록 구성되고, 상기 업데이트 서브모듈은 비 관계형 데이터베이스에 기억된 제2 직렬화 데이터를 수정후의 제2 직렬화 데이터로 업데이트하도록 구성된다.
상기 수정 서브모듈은 제2 기억 서브모듈 및 수정 서브모듈을 포함할 수 있으며, 상기 제2 기억 서브모듈은 상기 제2 색인을 램에 기억하도록 구성되고; 상기 수정 서브모듈은 램에서 제2 색인을 수정하도록 구성된다.
본 발명의 실시예의 제3 측면에 의하면, 프로세서와, 프로세서에서 실행 가능한 명령어를 기억하는 메모리를 포함하며, 상기 프로세서는, 비 관련형 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하고; 상기 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하고; 상기 제1 색인에 기초하여 검색할 수 있도록 구성되는 서버를 제공한다.
본 발명의 실시예에서 제공하는 기술 방안은 하기의 유리한 효과를 가져올 수 있다,
본 발명에서 서버는 NoSQL 데이터베이스로부터 사용자 식별자에 대응하는 직렬화 데이터를 판독할 수 있으며, 직렬화 데이터를 역직렬화 하여 색인으로 하고, 색인에 기초하여 검색할 수 있다. 검색의 범위는 전체 사용자가 아니라, 사용자 식별자에 대응되는 데이터를 대상으로 하므로, 검색 범위가 크게 줄어들 수 있고, 검색의 속도와 검색 성능을 제고할 수 있으며, 사용자 체험감을 개선할 수 있다.
본 발명의 서버는 각 사용자 데이터에 대하여 각각 색인을 생성하고, 이진 스트링으로 직렬화 하고, 상이한 사용자에 따라, 이진 스트링을 사용자 식별자에 대응되게 NoSQL 데이터베이스에 기억하며, NoSQL 데이터베이스 자체가 좋은 적시성과 일치성을 가지고 있기에, 검색의 적시성과 일치성을 확보하며, 또한, 사용자의 데이터가NoSQL 데이터베이스의 상이한 행에 기억되어 있으므로, 검색은 사용자 식별자에 대응되는 데이터만 대상으로 하여 수행 되어, 사용자 데이터의 프라이버시를 보호하고, 물리적으로 안전성을 확보한다. 그리고, NoSQL 데이터베이스는 자동적으로 여러 번의 밑층 백업을 수행하므로, 검색의 안전성을 더 한층 확보하며, NoSQL 데이터베이스 자체의 특점에 의하여, 단순한 검색 방식을 사용하는 것보다, 사용자가 늘어남에 따라, 필요한 서버의 증가 량이 많이 적게 된다.
본 발명에서, 서버는 제1 색인을 램에 기억하고, 램에서 제1 색인에 기초하여 검색할 수 있다. 램에서 검색하는 것은 데이터 량이 방대한 디스크에서 검색하는 것에 비하여, 판독 속도를 크게 제고할 수 있다.
본 발명에서, 서버는 색인을 수정하고, 사용자 식별자에 대응되는 이진 스트링을 역직렬화 하여 색인으로 하고, 색인을 수정하며, 수정후의 색인을 이진 스트링으로 직렬화 하고, NoSQL 데이터베이스에 기억된 이진 스트링을 업데이트 할 수 있다. 이리하여, 사용자 데이터의 증가, 삭제, 혹은 수정이 필요한 경우에, NoSQL 데이터베이스에 기억된 데이터를 제때에 업데이트 하여, 검색의 적시성을 확보할 수 있다.
본 발명에서, 검색 속도와 성능을 제고하기 위하여, 사용자 데이터의 수정을 램에서 수행할 수도 있다.
상기 일반적인 설명과 아래의 상세한 설명은 예시적인 것에 불과하고, 본 발명을 한정할수 없음을 이해하여야 할 것이다.
여기서 도면은 명세서에 편입되어 본명세서의 일부를 구성하고, 본 발명에 적합한 실시예를 나타내고 있으며, 명세서와 함께 본 발명의 원리를 해석하는 데 사용된다.
도 1은 본 발명의 예시적 실시예에 따른 데이터 검색 방법의 흐름도이다.
도 2는 본 발명의 예시적 실시예에 따른 다른 데이터 검색 방법의 흐름도이다.
도 3은 본 발명의 예시적 실시예에 따른 데이터 검색 적용 장면의 개략도이다.
도 4는 본 발명의 예시적 실시예에 따른 데이터 검색 장치의 블록도이다.
도 5는 본 발명의 예시적 실시예에 따른 다른 데이터 검색 장치의 블록도이다.
도 6은 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이다.
도 7은 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이다.
도 8은 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이다.
도 9는 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이다.
도 10은 본 발명의 예시적 실시예에 따른 데이터 검색 장치에 사용되는 구조의 개략도이다.
이하, 첨부된 도면을 참조하여 예시적 실시예에 대하여 상세히 설명한다. 아래의 설명이 도면에 관계되는 경우, 별도의 설명이 없는 한, 상이한 도면 중의 동일한 숫자는 동일 또는 유사한 요소를 표시한다. 아래의 예시적 실시예에 설명되는 실시 형태는 본 발명과 일치한 모든 실시 형태를 나타내는것이 아니라, 첨부된 특허청구범위에 상세히 설명된 바와 같은 본 발명의 일부 측면과 일치한 장치 및 방법의 예일 뿐이다..
본 발명에 사용되는 용어는 특정 실시예를 설명하는 것을 목적으로 하고, 본 발명을 한정하기 워한 것이 아니다. 상하 문장에서 명확하게 기타 의미를 나타내는 경우를 제외하고, 본 개시 및 첨부된 특허청구범위에서 사용되는 단수 형식의 [일], [상기] 및 [당해]도 복수의 형식을 포함한다. 또한, 본 문장에 사용되는 용어 [및/또는]은 한 개 또는 복수 개의 서로 관계되는 항목중의 임의 또는 모든 가능한 조합을 가리킨다는 것을 이해하여야 할 것이다.
본 발명에서 용어 제1, 제2, 제3 등을 사용하여 각 정보를 설명할 가능성이 있지만, 이러한 정보는 이러한 용어에 한정되지 않는다. 이러한 용어는 같은 종류의 정보를 구분하기 위한 것이다. 예를 들면, 본 발명의 범위를 벗어나지 않는 한, 제1정보는 제2정보로 불리울 수도 있고, 마찬가지로, 제2정보도 제1정보로 불리울 수 있다. 문맥에 따라 결정되고, 예를 들면, 여기서 사용되는 [만약]은 [......는 경우] 또는 [......일 때] 또는 [확정에 응답하여]로 해석할 수 있다.
도1에 도시된 바와 같이, 도1은 본 발명의 예시적 실시예에 따른 데이터 검색 방법의 흐름도이며, 이러한 방법은 서버에 사용될수 있으며, 하기의 단계를 포함한다.
101단계에서, 비 관계형 데이터베이스에서 제1사용자 식별자에 대응되는 제1직렬화 데이터를 판독한다.
본 발명에서 서버는 예를 들어 샤오미 서버 등 클라우드 서버일 수 있다. 본 발명에서 단말기는 임의의 인터넷 접속 기능을 가지는 스마트 단말기, 예를 들어 핸드폰, 태블릿 피씨, PDA (Personal Digital Assistant)등이 될 수 있다. 여기서, 단말기는 무선 랜을 통하여 라우터(Router)에 연결되고, 라우터를 통하여 공중망(Public network)의 서버를 방문할 수 있다.
본 발명에서, 비 관계형 데이터베이스는 비 관계형 구조화 조회 언어(Non-relational Structured Query Language,NoSQL) 데이터베이스 이다.
102단계에서, 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득한다.
여기서, 직렬화 (Serialization)는 서열화라고 할수도 있으며, .NET의 실행 시 환경이 사용자 정의 유형의 유화(fluidization)를 지지하는 메카니즘이다. 직렬화는 하나의 대상을 하나의 파일, 혹은 데이터베이스의 필드(field)에 기억하는 것을 가리키고, 역직렬화(Deserialization)는 적당한 시기에 이러한 파일을 원래의 대상으로 변환하여 사용하는 것을 가리킨다.
103단계에서, 당해 제1 색인에 기초하여 검색을 수행한다.
상기 실시예에서 알 수 있다 싶이, 서버는 NoSQL 데이터베이스로부터 사용자 식별자에 대응되는 직렬화 데이터를 판독할 수 있으며, 직렬화된 데이터를 역직렬화하여 색인으로 할 수 있기에, 색인에 기초하여 검색할 수 있다. 검색의 범위는 사용자 식별자에 대응되는 데이터를 대상으로 하고 전체 사용자가 아니므로, 검색의 범위가 크게 줄어들 수 있고, 검색의 속도와 검색 성능을 제고할 수 있으며, 사용자 체험감을 개선할 수 있다.
도2에 도시된 바와 같이, 도2는 본 발명의 예시적 실시예에 따른 다른 데이터 검색 방법의 흐름도이며 이 방법은 서버에 사용될 수 있으며, 하기와 같은 단계를 포함한다.
본발명의 실시예에서, 서버는 미리 각 사용자의 개인 데이터를 이진 스트링으로 처리하여 NoSQL 서버에 기억할 수 있다.
201단계에서, 제1 사용자 데이터와, 제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득한다.
본 단계에서는, 서버가, 제1 사용자가 업로드한 제1 사용자 데이터를 수신하거나, 혹은 사용자의 허가를 받은 후, 서버가, 매 시간 간격마다 주동적으로 단말 사용자 데이터를 획득할 수 있다. 이러한 제1 사용자 데이터는 제1 사용자의 메시지, 전화 전호부, 메일, 채팅기록 및 이미지 등 개인데이터를 포함할수 있다. 서버가 제1 사용자의 데이터를 수신할 경우, 제1 사용자 식별자도 수신하게 되며, 예를 들어, 샤오미 서버가 수신한 제1 사용자 식별자는 제1 사용자의 샤오미 계정 정보일수 있으며, 사용자 식별자는 사용자의 핸드폰 번호, 단말기의 MAC (Media Access Control) 주소 등이 될 수 있다.
202단계에서, 제1 사용자 데이터에 대하여, 제1 색인을 생성한다.
본 단계에서, 서버는 제1 사용자 데이터를 초기화하고, 검색 엔진, 예를 들면 lucene를 통하여, 당해제1 사용자 데이터에 대하여, 제1 색인을 생성한다. 즉, 서버는 각 사용자에 대하여, 각각 색인을 생성한다. 이러한 색인은 복수의 파일, 예를 들면 역전 리스트, 어휘 목록 등을 포함할 수 있다.
203단계에서, 생성한 제1 색인을 직렬화하여 제1이진 스트링을 획득한다.
본 단계에서, 서버는 색인의 밑층 포맷, 예를 들어, 하나의 명칭을 하나의 내용에 대응시키고, 제1 색인 혹은 역 리스트, 어휘 목록 등 각 파일을 예를 들어 xml스트링, json스트링, 이진 스트링 등 제1 이진 스트링으로 직렬화한다. 일반적으로, 이러한 이진 스트링은 비교적 작으며 심지어 2M를 초과하지 않는다. 예를 들어, 만 여개의 메시지 혹은 만 여개의 이미지의 색인이 차지하는 데스크의 기억 공간은 매우 작게 된다. 여기서, 직렬화는 관련 기술의 직렬화 방법, 예를 들어 xml직렬화 (XmlSerialization), 이진 직렬화 (Binary Formatter), Soap직렬화(Soap Formatter)등을 사용할수 있다.
204단계에서, 당해 제1 이진 스트링과 제1 사용자 식별자를 관련시켜 NoSQL 데이터베이스에 기억시킨다.
본 단계에서, 서버는 각 사용자의 사용자 식별자와 이진 스트링을 NoSQL 데이터베이스, 예를 들면Casssandra, Lucene/Solr, BigTable/ Accumulo/ Hypertable등 데이터베이스에 대응되게 기억한다.
즉, 본 단계에서, 서버는 상이한 사용자의 이진 스트링을 NoSQL의 상이한 행(Row)에 기억하며, 각 사용자의 이진 스트링은 물리적으로 이격되어 있으므로, 사용자의 프라이버시를 보호하는데 유리하고 안전성도 좋다. 그리고, 서버가 사용자의 검색 요청를 수신하면, 상기의 NoSQL 데이터베이스에 기억된 색인에 기초하여 검색한다.
205단계에서, NoSQL 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 이진 스트링을 판독한다.
본 발명의 실시예에서, 서버가 제1 사용자에 의해 입력된, 검색 조건을 가진 검색 요청를 수신하면, 검색 요청으로부터 제1 사용자의 제1 사용자 식별자를 추출하고, 제1 사용자 식별자에 기초하여 NoSQL 데이터베이스에서 대응되는 제1 직렬화 데이터를 검색하고 판독하며, 이러한 직렬화 데이터는 이진 스트링일 수 있다.
206단계에서, 당해 제1 이진 스트링을 역직렬화하여, 제1 색인을 획득한다.
본 단계에서, 서버의 각도로부터 보면, 역직렬화를 거친 파일만이 판독할 수 있는 파일이며, 향후의 검색 단계를 수행할 수 있으므로, 서버는 제1 이진 스트링을 역직렬화하여 제1 색인, 즉 제1 사용자의 개인 데이터에 대응되는 복수의 파일을 획득한다.
여기서, NoSQL 데이터베이스는 서버의 디스크에 위치하므로, 서버는 제1 이진 스트링을 디스크로부터 램에 판독하여 내고, 그 다음에, 램에서 제1 이진 스트링을 역직렬화하여 제1 색인을 획득할수 있다.
207단계에서, 당해 제1 색인에 기초하여 검색을 수행한다.
본 단계에서, 램에서 제1 색인을 획득한 다음, 검색 조건 및 제1 색인에 기초하여 여러가지 검색 작업을 수행할 수 있다.
램의 기억 공간이 비교적 크고 각 사용자의 색인이 차지하는 공간이 비교적 작으므로, 사용자의 색인을 램에 기억하고, 램에서 검색을 수행할 수 있다. 이러한 방법은 대량의 데이터가 기억된 디스크의서 검색하는 것에 비하여, 판독 속도를 많이 제고할 수 있다. 그리고, 램에 대하여 판독 작업만 하므로, 검색이 끝난후, 즉시 차지하였던 램 공간을 방출할 수 있다.
관련된 기술에서, 서버는 모든 사용자의 사용자 데이터에 대하여, 색인을 생성하며, 모든 색인을 서버의 디스크에 기억하므로 데이터의 량이 매우 많아, 심지에 몇십 G에 도달하여, 디스크를 오픈하고 판독하는 속도가 매우 느리므로, 검색 속도가 매우 느리고, 검색 성능이 저하되어 사용자의 요구를 만족할 수 없다. 본 발명의 실시예에서는, 각 사용자의 데이터에 대하여, 색인을 생성하고, 각 색인에 대응되는 이진 스트링을 사용자 식별자에 대응되게 기억하므로, 임의 사용자의 데이터를 검색할 경우, 사용자 식별자에 기초하여 대응되는 색인만 검색하면 되기에, 검색의 범위를 크게 줄일 수 있으므로 검색 속도를 크게 제고할 수 있다.
본 발명의 실시예에서, 사용자가 새로운 사용자 데이터를 업로드하거나 사용자 데이터를 수정, 삭제하면, 서버는 색인을 수정해야 하며, 이러한 경우에, 본 발명의 실시예는 하기의 단계를 더 포함할 수 있다.
208단계에서, 수신한 사용자의 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정한다.
본 단계에서, 서버는 수정 요청 중의 제2 사용자 식별자를 획득하고, 제2 사용자 식별자에 기초하여 대응되는 제2 이진 스트링을 판독한 후, 제2 이진 스트링을 디스크로부터 램에 판독하여 내고, 역직렬화 처리를 하여 제2 사용자 식별자에 대응되는 제2 색인을 획득한다. 그리고, 수정 요청에 기초하여, 램에서 제2 색인을 수정하며, 나중에, 수정후의 제2 색인을 이진 스트링으로 직렬화하여 NoSQL 데이터베이스에 기억한다.즉, NoSQL 데이터베이스에 기억된 제2 이진 스트링을 수정후의 제2 색인에 대응되는 이진 스트링으로 업데이트 한다.
본 발명의 상기 실시예에서, 각 사용자의 색인은 독립적이기에, 검색의 범위가 더 목적성이 있으며, 검색 성능흘 확보할 수 있다. 따라서, 한대의 서버가 몇명의 사용자의 데이터를 기억할 수 있는지는NoSQL의 기억 공간의 크기에 의해 결정 된다. 예를 들어, 각 사용자의 색인이 2M이고, 서버의 디스크 공간이 100G이면, 하나의 서버는 약 100G/2M=5만명의 사용자에게 서비스를 제공할 수 있다. 만약 lucene등 단순한 검색 방법에 기초한 관련 기술의 검색 방법을 사용하면, 5만명의 사용자의 색인은 100G의 디스크 공간에 기억할 수는 있지만, 검색의 범위가 모든 사용자 데이터를 대상으로 하므로, 검색의 성능이 비교적 낮을 수 있으며, 검색의 지연이 매우 크므로, 검색은 성능을 확보하기 위하여, 서버에 기억되는 사용자의 데이터의 수량을 감소할 필요가 있으므로 5만명의 데이터를 기억할 수 없으며, 실제적으로 1만명의 사용자 데이터만 기억할수 있을 수 있다. 본 발명에서 검색의 범위는 모든 사용자를 대상으로 하지 않으므로, 검색 성능을 향상시킬 수 있으며, 한대의 서버에서, 본 발명의 방법은 물론 더 많은 사용자의 데이터를 기억할 수 있으므로, 본 발명의 방법에서 사용하는 서버의 총 수량도 관련된 기술에서 사용되는 서버의 수량보다 적다.
도 3에서 도시된 바와 같이, 도3은 본 발명의 예시적 실시예에 따른 데이터 검색 적용 장면의 개략도이다. 도3에서 도시된 장면에는 서버와 스마트폰이 포함된다.
서버는 스마트폰으로부터 사용자의 검색 요청를 수신하고, 당해 검색 요청에는 검색 조건 및 해당 사용자의 사용자 식별자가 포함되며, 서버는 당해 사용자 식별자에 기초하여, NoSQL 데이터베이스에서 당해 사용자의 식별자에 대응되는 이진 스트링을 판독하고, 서버는 당해 판독된 이진 스트링을 역직렬화하여, 당해 사용자 식별자에 대응되는 색인을 획득하며, 서버는 당해 색인을 램에 판독하여 내고, 당해 색인과 검색 조건에 기초하여 검색한다.
도 3에 도시된 적용 장면에서, 데이터의 검색을 실현하는 과정은 상기의 도 1과 도2의 기재를 참고할 수 있으므로, 중복하여 설명하지 않는다.
상기의 데이터 검색 방법의 실시예에 대응하여, 본 발명은 데이터의 검색 장치 및 응용된 서버의 실시예도 제공할 수 있다.
도 4에 도시된 바와 같이, 도 4는 본 발명의 예시적 실시예에 따른 데이터 검색 장치의 블록도이며, 상기의 장치는 제1 판독모듈(410), 제1 처리모듈(420) 및 검색모듈(430)을 포함할 수 있다.
여기서, 제1 판독모듈(410)은, NoSQL 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하도록 구성된다.
제1 처리모듈(420)은, 제1 판독모듈(410)에 의해 판독된 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하도록 구성된다.
검색모듈(430)은, 제1 처리모듈(420)에 의해 처리하여 획득한 제1 색인에 기초하여 검색하도록 구성된다.
상기의 실시예에서, 서버는 NoSQL 데이터베이스에서 사용자 식별자에 대응되는 직렬화 데이터를 판독하고, 직렬화 데이터를 역직렬화하여 색인으로 하여, 색인에 기초하여 검색한다. 검색의 범위는 전체 사용자가 아니라, 사용자 식별자에 대응되는 데이터이므로, 검색의 범위를 크게 줄일 수 있어, 검색의 속도와 검색 성능을 제고하여, 사영자 체험감을 개선할 수 있다.
도 5에 도시된 바와 같이, 도5는 본 발명의 예시적 실시예에 따른 다른 데이터 검색 장치의 블록도이며, 이 실시예는, 상기 도 4에서 도시한 실시예에 기초하여, 획득모듈(440), 색인 생성모듈(450), 제2 처리모듈(460) 및 기억모듈(470)을 더 포함할 수 있다.
여기서, 획득모듈(440)은 제1 사용자 데이터와, 제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득하도록 구성된다.
색인 생성모듈(450)은 획득모듈(440)에 의해 획득된 제1 사용자 데이터에 대하여, 색인을 생성하도록 구성 된다.
제2 처리모듈(460)은 색인 생성모듈(450)에 의해 생성된 색인을 직렬화하여 이진 스트링을 획득하도록 구성된다.
기억모듈(470)은 제2 처리모듈(460)에 의해 처리하여 획득된 이진 스트링을 제1 사용자 식별자와 관련하여 NoSQL 데이터베이스에 기억하도록 구성되고, 이 제1 직렬화 데이터는 이진 스트링을 포함한다.
상기의 실시예에서, 서버는 각 사용자 데이터에 대하여 각각 색인을 생성하고, 이진 스트링으로 직렬화하고, 상이한 사용자에 따라, 이진 스트링을 사용자 식별자에 대응되게 NoSQL 데이터베이스에 기억하며, NoSQL 데이터베이스 자체가 좋은 적시성과 일치성을 가지고 있기에, 검색의 적시성과 일치성을 확보하며, 또한, 사용자의 데이터가NoSQL 데이터베이스의 상이한 행에 기억되어 있으므로, 검색은 사용자 식별자에 대응되는 데이터만 대상으로 하여 수행되어, 사용자 데이터의 프라이버시를 보호하고, 물리적으로 안전성을 확보한다. 그리고, NoSQL 데이터베이스는 자동적으로 여러 번의 기본 백업을 수행하므로, 검색의 안전성을 더 한층 확보하며, NoSQL 데이터베이스 자체의 특점에 의하여, 단순한 검색 방식을 사용하는 것보다, 사용자가 늘어남에 따라, 필요한 서버의 증가 량이 많이 적게 된다.
도6에 도시된 바와 같이, 도6은 본 발명의 예시적 실시예에 따른 다른 데이터 검색 장치의 블록도이며, 이 실이예에서, 상기 도4에서 도시한 실시예에 기초하여, 검색모듈(430)은 제1 기억 서브모듈(431) 및 검색 서브모듈(432)를 더 포함할 수 있다.
여기서, 제1 기억 서브모듈(431)은 제1 색인을 램에 기억하도록 구성될 수 있으며,
검색 서브모듈(432)은 램에서 제1 기억 서브모듈(431)에 의해 기억된 제1 색인에 기초하여 검색을 수행하도록 구성된다.
상기 실시예에서, 제1 색인을 램에 기억하고, 램에서 제1 색인에 기초하여 검색할 수 있다. 램에서 검색하는 것은 데이터 량이 방대한 디스크에서 검색하는 것에 비하여, 판독 속도를 크게 제고할 수 있다.
도7에 도시된 바와 같이, 도7은 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이며, 이 실이예에서, 상기 도4에서 도시한 실시예에 기초하여, 검색모듈은 수정모듈(480)을 더 포함할 수 있다.
여기서, 수정모듈(480)은 수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하도록 구성된다, 당해 수정 요청은 제2 사용자 식별자를 포함한다.
도8에 도시된 바와 같이, 도8는 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이며, 이 실이예에서, 상기 도7에서 도시한 실시예에 기초하여, 수정모듈(480)은 판독 서브모듈(481), 제1 처리 서브모듈(482), 수정 서브모듈(483), 제2 처리 서브모듈(484) 및 업데이트 서브모듈(485)을 더 포함할 수 있다.
여기서, 판독 서브모듈(481)은NoSQL 데이터베이스에서 제2 사용자 식별자에 대응되는 제2 직렬화 데이터를 판독하도록 구성되고,
제1 처리 서브모듈(482)은 판독 서브모듈(481)에 의해 판독된 제2 직렬화 데이터를 역직렬화하여 제2 색인을 획득하도록 구성되고,
수정 서브모듈(483)은 수정 요청에 기초하여 제1 처리 서브모듈(482)에 의해 처리하여 획득된 제2 색인을 수정하도록 구성되고,
제2 처리 서브모듈(484)은 수정 서브모듈(483)에 의해 수정된 후의 제2 색인을 직렬화하여 수정후의 제2 직렬화 데이터를 획득하도록 구성되고,
업데이트 서브모듈(485)은NoSQL 데이터베이스에 기억된 제2 직렬화 데이터를 수정후의 제2 직렬화 데이터로 업데이트하도록 구성 된다.
상기의 실시예에서, 서버는 색인을 수정하고, 사용자 식별자에 대응되는 이진 스트링을 역직렬화 하여 색인으로 하며, 색인을 수정하고, 수정후의 색인을 직렬화하여 이진 스트링으로 하며, NoSQL 데이터베이스에 기억된 이진 스트링을 업데이트할 수 있다. 이리하여, 사용자 데이터의 증가, 삭제, 혹은 수정이 필요한 경우에, NoSQL 데이터베이스에 기억된 데이터를 제때에 업데이트하여, 검색의 적시성을 확보할 수 있다.
도9에 도시된 바와 같이, 도9는 본 발명의 예시적 실시예에 따른 또 다른 데이터 검색 장치의 블록도이며, 이 실이예에서, 상기 도8에서 도시한 실시예에 기초하여, 수정 서브모듈(483)은 제2 기억 서브모듈(486) 및 수정 서브모듈(487)을 더 포함할 수 있다.
여기서, 제2 기억 서브모듈(486)은 제2 색인을 램에 기억하도록 구성 되고,
수정 서브모듈(487)은 램에서 제2 기억 서브모듈(486)에 의해 기억된 제2 색인을 수정하도록 구성 된다.
상기 실시예에서, 사용자 데이터에 대한 수정도 램에서 수행되여 검색의 속도와 성능을 제고할 수 있다.
상기 도4 내지 도9에 도시된 데이터의 검색 장치의 실시예는 서버에 적용될 수 있다.
상기 장치에서, 각 유닛의 기능과 작용의 구현 과정은 상기 방법의 대응되는 단계를 참조할 수 있으므로, 여기에서 중복하여 설명하지 않는다.
장치의 실시예에 있어서, 기본적으로 방법의 실시예에 대응하므로, 대응하는 부분은 방법 실시예 부분의 설명을 참조하면 된다. 상기와 같이 설명된 장치 실시예는 예시적인 것에 불과하고, 분리 부품으로 설명된 유닛은 물리적으로 분리된 부품일 수도 있고 분리되지 않은 부품일 수도 있으며, 유닛으로 표시된 부품은 물리적 유닛일 수도 있고 물리적 유닛이 아닐 수도 있으며, 한 곳에 위치할 수도 있고, 또는 복수 개의 네트워크 유닛에 분포될 수도 있다. 실제 수요에 따라 그 중의 일부 또는 전부 모듈을 선택하여 본 발명의 해결수단을 실현할 수 있다. 당업자는 창조적인 노동을 하지 않고도, 이해할 수 있고 실시할 수 있다.
상응하게, 본 발명은 프로세서와, 프로세서에서 실행 가능한 명령어를 기억하는 메모리를 포함하는 서버를 제공한다. 여기서, 프로세서는 비 관련형 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하고, 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하고, 제1 색인에 기초하여 검색할 수 있도록 구성된다.
도10에 나타난 바와 같이, 도10은 본 발명의 예시적 실시예에 따른 데이터의 검색 장치(1000)에 사용되는 구조 개략도이다. 예를 들어, 장치(1000)는 서버로 제공될 수 있다. 도10을 참조하면, 장치(1000)는 하나 혹은 복수의 프로세서를 포함하는 처리 컴포넌트(1022), 및 처리 컴포넌트(1022)에서 실행 가능한 명령어, 예를 들어 응용프로그램을 기억하는 메모리(1032)를 대표로 하는 메모리 자원을 포함한다. 메모리(1032)에 기억된 응용프로그램은 하나 혹은 그 이상의, 각각 한 그룹의 명령어에 대응되는 모듈을 포함할 수 있다. 이외에, 처리 컴포넌트(1022)은 명령어를 실행하여, 상기의 데이터의 검색 방법을 실행할수 있도록 구성된다.
장치(1000)는 장치(1000)의 전원 관리를 할수 있도록 구성된 전원 컴포넌트(1026), 장치(1000)를 네트워크에 연결하도록 구성 된 하나의 유선 혹은 무선의 네트워크 인터페이스(1050), 및 하나의 입출력(I/O) 인터페이스를 더 포함할 수 있다. 장치(1000)은 메모리(1032)에 기억된 운용 시스템, 예를 들어, Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM 등을 실행할 수 있다.
당업자라면, 명세서를 고려하고 여기에 개시된 발명을 실시한 후, 본 발명의 기타 실시 형태를 쉽게 생각하게 될 것이다. 본 출원은 본 발명의 모든 변형, 용도 또는 적응성 변화를 포괄하는 것을 목적으로 하고, 이러한 변형, 용도 또는 적응성 변화는 본발명의 일반적 원리를 따르고, 본 발명에 개시되지 않은 당해 기술분야의 일반 지식 또는 관용적 기술수단을 포함한다. 명세서와 실시예는 예시적인 것에 불과하고, 본 발명의 실질적 범위와 주지는 아래의 청구항에 의해 결정된다.
본 발명은 위와 같이 설명되고, 도면에 도시된 정밀한 구조에 한정되지 않으며, 그 범위를 벗어나지 않는다면 다양한 수정 및 변경을 실시할 수 있다는 것을 이해하여야 할 것이다. 본 발명의 범위는 첨부된 청구항에 의해 한정된다.

Claims (13)

  1. 비 관계형 데이터베이스에서 제1사용자 식별자에 대응되는 제1직렬화 데이터를 판독하는 단계와;
    상기 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하는 단계와;
    상기 제1 색인에 기초하여 검색하는 단계와;
    수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하는 단계 - 상기 수정 요청은 상기 제2 사용자 식별자를 포함함 - 를 포함하는 것을 특징으로 하는 데이터의 검색 방법.
  2. 제1 항에 있어서,
    상기 비 관계형 데이터베이스에서 제1사용자 식별자에 대응되는 제1직렬화 데이터를 판독하는 단계 전에,
    제1 사용자 데이터와, 상기 제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득하는 단계와;
    상기 제1 사용자 데이터에 대하여, 제1 색인을 생성하는 단계와;
    상기 제1 색인을 직렬화하여, 제1 이진 스트링을 획득하는 단계와;
    상기 제1 이진 스트링을 제1 사용자 식별자와 관련하여 상기 비 관계형 데이터베이스에 기억하고, 상기 제1 직렬화 데이터는 상기 제1 이진 스트링을 포함하는 단계
    를 포함하는 것을 특징으로 하는 데이터의 검색 방법.
  3. 제1 항에 있어서,
    상기의 상기 제1 색인에 기초하여 검색하는 단계는,
    상기 제1 색인을 램에 기억하는 단계와;
    램에서 상기 제1 색인에 기초하여 검색하는 단계를 포함하는 것을 특징으로 하는 데이터의 검색 방법.
  4. 삭제
  5. 제1 항에 있어서,
    상기의 수신한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하는 단계는,
    비 관계형 데이터베이스에서 상기 제2 사용자 식별자에 대응되는 제2 직렬화 데이터를 판독하는 단계와;
    상기 제2 직렬화 데이터를 역직렬화하여, 제2 색인을 획득하는 단계와;
    상기 수정 요청에 기초하여 상기 제2 색인을 수정하는 단계와;
    수정후의 제2 색인을 직렬화하여 수정후의 제2 직렬화 데이터를 획득하는 단계와;
    상기 비 관계형 데이터베이스에 기억된 제2 직렬화 데이터를 수정후의 제2 직렬화 데이터로 업데이트하는 단계
    를 포함하는 것을 특징으로 하는 데이터의 검색 방법.
  6. 제5 항에 있어서,
    상기의 상기 수정 요청에 기초하여 상기 제2 색인을 수정하는 단계는,
    상기 제2 색인을 램에 기억하는 단계와;
    램에서 상기 제2 색인을 수정하는 단계를 포함하는 것을 특징으로 하는 데이터의 검색 방법.
  7. 제1 판독모듈, 제1 처리모듈, 검색모듈 및 수정모듈을 포함하며,
    상기 제1 판독모듈은, 비 관계형 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하도록 구성되며;
    상기 제1 처리모듈은, 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하도록 구성되며;
    상기 검색모듈은, 상기 제1 색인에 기초하여 검색하도록 구성되며,
    상기 수정모듈은 수신한 상기 제2 사용자 식별자를 포함한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정하도록 구성된 것을 특징으로 하는 데이터의 검색 장치.
  8. 제7 항에 있어서,
    획득모듈, 색인 생성모듈, 제2 처리모듈 및 기억모듈을 더 포함하며,
    상기 획득모듈은, 제1 사용자 데이터와, 상기 제1 사용자 데이터에 대응되는 제1 사용자 식별자를 획득하도록 구성되며;
    상기 색인 생성모듈은, 상기 제1 사용자 데이터에 대하여 색인을 생성하도록 구성되며;
    상기 제2 처리모듈은, 상기 색인을 직렬화하여 제1 이진 스트링을 획득하도록 구성되며;
    상기 기억모듈은, 상기 제1 이진 스트링을 제1 사용자 식별자와 관련하여 비 관계형 데이터베이스에 기억하도록 구성 되고, 상기 제1 직렬화 데이터는 상기 제1 이진 스트링을 포함하는 것을 특징으로 하는 데이터의 검색 장치.
  9. 제7 항에 있어서,
    상기 검색모듈은 제1 기억 서브모듈 및 검색 서브모듈를 더 포함하며,
    제1 기억 서브모듈은, 제1 색인을 램에 기억하도록 구성되며;
    검색 서브모듈은 램에서 제1 색인에 기초하여 검색하도록 구성된 것을 특징으로 하는 데이터의 검색 장치.
  10. 삭제
  11. 제7 항에 있어서,
    상기 수정모듈은 판독 서브모듈, 제1 처리 서브모듈, 수정 서브모듈, 제2 처리 서브모듈 및 업데이트 서브모듈을 포함하며,
    상기 판독 서브모듈은 비 관계형 데이터베이스에서 상기 제2 사용자 식별자에 대응되는 제2 직렬화 데이터를 판독하도록 구성되고;
    상기 제1 처리 서브모듈은, 상기 제2 직렬화 데이터를 역직렬화하여 제2 색인을 획득하도록 구성되고;
    상기 수정 서브모듈은, 수정 요청에 기초하여 제2 색인을 수정하도록 구성되고;
    상기 제2 처리 서브모듈은, 수정후의 제2 색인을 직렬화하여 수정후의 제2 직렬화 데이터를 획득하도록 구성되고,
    상기 업데이트 서브모듈은 비 관계형 데이터베이스에 기억된 제2 직렬화 데이터를 수정후의 제2 직렬화 데이터로 업데이트하도록 구성된 것을 특징으로 하는 데이터의 검색 장치.
  12. 제11 항에 있어서,
    상기 수정 서브모듈은 제2 기억 서브모듈 및 수정 서브모듈을 포함하며;
    상기 제2 기억 서브모듈은 상기 제2 색인을 램에 기억하도록 구성되고;
    상기 수정 서브모듈은 램에서 상기 제2 색인을 수정하도록 구성된 것을 특징으로 하는 데이터의 검색 장치.
  13. 프로세서와;
    프로세서에서 실행 가능한 명령어를 기억하는 메모리를 포함하며,
    상기 프로세서는,
    비 관련형 데이터베이스에서 제1 사용자 식별자에 대응되는 제1 직렬화 데이터를 판독하고;
    상기 제1 직렬화 데이터를 역직렬화하여 제1 색인을 획득하고;
    상기 제1 색인에 기초하여 검색하며,
    수신한 상기 제2 사용자 식별자를 포함한 수정 요청에 응답하여, 제2 사용자 식별자에 대응되는 제2 색인을 수정할 수 있도록 구성되는 것을 특징으로 하는 서버.
KR1020167005126A 2015-08-26 2015-12-29 데이터의 검색 방법, 장치 및 단말기 KR101790766B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510531673.4 2015-08-26
CN201510531673.4A CN105138649B (zh) 2015-08-26 2015-08-26 数据的搜索方法、装置及终端
PCT/CN2015/099297 WO2017031894A1 (zh) 2015-08-26 2015-12-29 数据的搜索方法、装置及终端

Publications (2)

Publication Number Publication Date
KR20170035349A KR20170035349A (ko) 2017-03-30
KR101790766B1 true KR101790766B1 (ko) 2017-10-26

Family

ID=54723997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005126A KR101790766B1 (ko) 2015-08-26 2015-12-29 데이터의 검색 방법, 장치 및 단말기

Country Status (8)

Country Link
US (1) US20170060922A1 (ko)
EP (1) EP3136261A1 (ko)
JP (1) JP6383110B2 (ko)
KR (1) KR101790766B1 (ko)
CN (1) CN105138649B (ko)
MX (1) MX360747B (ko)
RU (1) RU2637472C2 (ko)
WO (1) WO2017031894A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138649B (zh) * 2015-08-26 2018-11-30 小米科技有限责任公司 数据的搜索方法、装置及终端
CN108536798B (zh) * 2018-04-02 2020-12-01 携程旅游网络技术(上海)有限公司 订单级别的数据库数据的恢复方法及系统
CN109408696B (zh) * 2018-09-30 2021-05-18 上海掌门科技有限公司 一种用于搜索寄宿程序的方法与设备
CN109614372B (zh) * 2018-10-26 2023-06-02 创新先进技术有限公司 一种对象存储、读取方法、装置、及业务服务器
CN111078632B (zh) * 2019-12-27 2023-07-28 珠海金山数字网络科技有限公司 一种文件数据的管理方法及装置
CN114969124A (zh) * 2022-06-15 2022-08-30 上海柯林布瑞信息技术有限公司 基于数据映射表的搜索索引构建方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2283510C2 (ru) * 2002-07-23 2006-09-10 Самсунг Электроникс Ко., Лтд. Индексная структура метаданных, способ предоставления индексов метаданных, а также способ поиска метаданных и устройство, использующее индексы метаданных
US8165998B2 (en) * 2004-05-14 2012-04-24 Sap Ag Fast comparison using multi-level version format
US8060487B2 (en) * 2005-08-01 2011-11-15 Sap Ag Searching for and launching data files not associated with an application
CN101183364B (zh) * 2006-11-24 2010-10-13 腾讯科技(深圳)有限公司 一种信息搜索方法、搜索引擎客户端/服务器及系统
CN101141627A (zh) * 2007-10-23 2008-03-12 深圳市迅雷网络技术有限公司 一种流媒体文件的存储系统及方法
JP2010072774A (ja) * 2008-09-17 2010-04-02 Nec Corp データ検索システム、データ検索方法及びデータ検索プログラム
US8239389B2 (en) * 2008-09-29 2012-08-07 International Business Machines Corporation Persisting external index data in a database
US8948465B2 (en) * 2012-04-09 2015-02-03 Accenture Global Services Limited Biometric matching technology
CN103532919B (zh) * 2012-07-06 2018-06-12 腾讯科技(深圳)有限公司 用户账户保持登录态的方法及系统
CN103425785A (zh) * 2013-08-22 2013-12-04 新浪网技术(中国)有限公司 数据存储系统及其用户数据存储、读取方法
US9471711B2 (en) * 2013-09-23 2016-10-18 Teradata Us, Inc. Schema-less access to stored data
CN106716402B (zh) * 2014-05-12 2020-08-11 销售力网络公司 以实体为中心的知识发现
CN104199892B (zh) * 2014-08-26 2018-01-30 上海爱数信息技术股份有限公司 一种基于压缩合并异步更新的索引读写方法
CN104462357B (zh) * 2014-12-08 2017-11-17 百度在线网络技术(北京)有限公司 实现个性化搜索的方法和装置
CN104636464B (zh) * 2015-02-09 2019-02-01 腾讯科技(深圳)有限公司 访问文件的方法和装置
CN105138649B (zh) * 2015-08-26 2018-11-30 小米科技有限责任公司 数据的搜索方法、装置及终端

Also Published As

Publication number Publication date
JP6383110B2 (ja) 2018-08-29
WO2017031894A1 (zh) 2017-03-02
KR20170035349A (ko) 2017-03-30
CN105138649B (zh) 2018-11-30
MX360747B (es) 2018-11-15
EP3136261A1 (en) 2017-03-01
JP2017535009A (ja) 2017-11-24
RU2637472C2 (ru) 2017-12-04
MX2016002625A (es) 2017-06-21
US20170060922A1 (en) 2017-03-02
RU2016107009A (ru) 2017-08-31
CN105138649A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
KR101790766B1 (ko) 데이터의 검색 방법, 장치 및 단말기
CN109997126B (zh) 事件驱动提取、变换、加载(etl)处理
JP6188732B2 (ja) マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム
JP2019194882A (ja) ファーストクラスデータベース要素としての半構造データの実装
US20170193041A1 (en) Document-partitioned secondary indexes in a sorted, distributed key/value data store
US9965641B2 (en) Policy-based data-centric access control in a sorted, distributed key-value data store
JP2000090074A (ja) ドキュメントの管理方法
CN108874924A (zh) 搜索服务的创建方法、装置及计算机可读存储介质
CN111324610A (zh) 一种数据同步的方法及装置
CN104834650A (zh) 一种有效查询任务生成方法及系统
CN111046041A (zh) 数据处理方法和装置、存储介质及处理器
CN110263104A (zh) Json字符串处理方法及装置
US9710337B1 (en) Systems and methods for restoring web parts in content management systems
JP2013117873A (ja) データベース処理方法
CN102955808A (zh) 一种数据获取方法和分布式文件系统
CN104731827A (zh) 快速分布式文件系统文件元数据的生成方法及装置
CN108256019A (zh) 数据库主键生成方法、装置、设备及其存储介质
CN107506189A (zh) 一种基于工厂模式实现的iOS数据持久化方法
CN104239576A (zh) 查找HBase表列值中所有行的方法和装置
WO2020201882A1 (en) Extensible data skipping
CN110287172A (zh) 一种格式化HBase数据的方法
Glumenko et al. Characteristics of the development of an it project for creation of open educational resource
CN117827802B (zh) 一种基于Hbase的数据处理系统、方法及装置
US11816158B2 (en) Metadata tagging of document within search engine
US20220078236A1 (en) Multipart upload for distributed file systems

Legal Events

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