IP Library › Granted Patent US 7,080,091
Granted Patent B2
US 7,080,091 · App. 10/160,763 · Granted Jul 18, 2006

Inverted index system and method for numeric attributes

Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,080,091
App. No.
10/160,763
Granted
Jul 18, 2006
Kind
B2
Abstract

A system and method is provided for generating an inverted index and processing search queries using the inverted index. To increase efficiency for queries having multiple numeric range conditions, numeric attributes are tokenized into a plurality of tokens based on their binary value. The tokens become keys in the inverted index. A numeric range query is translated into a query on multiple tokens and combining two or more range queries on different attributes becomes a simple merge of document identification lists.

Claims (45)

1. A system, comprising:

a data retriever for retrieving selected numeric attributes from a data repository;

a tokenizer for generating a plurality of tokens from each of the selected numeric attributes based on a binary value of each selected numeric attribute, the tokenizer being configured to tokenize a binary value into a plurality of tokens such that one numeric attribute from the data repository creates multiple tokens to be used as multiple keys in an inverted index, each of the plurality of tokens created for a selected numeric value having a different length measured in bits; and

an indexer for generating an inverted index using each of the plurality of tokens as a key.

2. The system as set forth in claim 1 wherein, for a numeric attribute having a binary value represented by n_bits, the tokenizer generates n_tokens from the binary value, each of the n tokens having a different length in bits, n being an integer.

3. The system as set forth in claim 2 wherein an I-th token from the n tokens has a length of I_bits, n being an integer. I being an integer.

4. The system as set forth in claim 1 wherein the system is embodied as computer executable instructions.

5. The system as set forth in claim 1 wherein the inverted index is a b-tree structure.

6. The system as set forth in claim 1 wherein the inverted index is a hash index.

7. The system as set forth in claim 1 wherein the inverted index is an array structure.

8. The system as set forth in claim 1 further including logic for generating a binary value for each numeric attribute that represents the numeric attribute.

9. The system of claim 1 where the system is embodied as processor executable instructions on a computer-readable medium.

10. A process, comprising:

determining a binary value for each numeric value in a data repository;

tokenizing the binary value into a plurality of bit tokens where each of the plurality of bit tokens includes a different number of bits from the binary value; and

generating an inverted index using the plurality of bit tokens as an index key such that multiple index keys are generated for each numeric value in the data repository.

11. The process as set forth in claim 10 wherein the binary value includes n_bits and the tokenizing step creates n_tokens from the binary value, n being an integer.

12. The process as set forth in claim 10 wherein the generating step includes generating an index entry having a form of (attribute, token, list) where list is a list of entities that contain the attribute and the token.

13. The process as set forth in claim 10 wherein the inverted index is generated as a b-tree.

14. The process as set forth in claim 10 wherein the inverted index is generated as a hash index.

15. The process as set forth in claim 10 wherein the inverted index is generated as an array structure.

16. The process as set forth in claim 10 wherein the determining step includes setting a predetermined length for the binary value.

17. A computer-readable medium for providing processor executable instructions configured to perform the process of claim 10 .

18. A method of data retrieval from a data repository containing data records in response to a query having a numeric operand, the method comprising the steps of:

providing an inverted index generated from the data repository, the inverted index having an index key formed from an attribute in the data repository having numeric values, the index key being based on tokenizing a binary value of a selected numeric value into multiple binary tokens having different bit lengths where the multiple binary tokens are index keys in the inverted index that are associated to a data record containing the selected numeric value;

determining a binary value for the numeric operand;

tokenizing the binary value of the numeric operand into a plurality of tokens each having a different number of bits; and

retrieving data from the inverted index by searching the inverted index based on a correspondence between the plurality of tokens from the numeric operand and the index keys of the inverted index.

19. The method as set forth in claim 18 wherein if the query includes a greater-than operator, the retrieving step includes:

selecting tokens from the plurality of tokens that end in a zero bit;

converting the zero bit of the selected token to a one bit; and

matching the converted tokens to the index keys in the inverted index.

20. The method as set forth in claim 18 wherein if the query includes a less-than operator, the retrieving step includes:

selecting tokens from the plurality of tokens that end in a one bit;

converting the one bit of the selected token to a zero bit; and

matching the converted tokens to the index keys in the inverted index.

21. The method as set forth in claim 18 wherein the query includes multiple numeric operands, the method further includes:

repeating the determining, tokenizing and retrieving steps for each numeric operand; and

merging data retrieved from each numeric operand in accordance with the query to obtain a resultant data list.

22. The method as set forth in claim 18 wherein the retrieving step retrieves a list of entity identifiers that are associated to an index that matches one of the plurality of tokens.

23. A computer-readable medium for providing processor executable instructions configured to perform the method of claim 18 .

24. A computer-readable medium for providing processor executable instructions configured to perform a method, the method comprising:

retrieving selected numeric attributes from a data repository;

generating a plurality of tokens from each of the numeric attributes based on a binary value of each numeric attribute, including tokenizing the binary value into a plurality of tokens having different bit lengths such that one numeric attribute from the data repository creates multiple tokens to be used as multiple keys in an inverted index; and

generating an inverted index using each of the plurality of tokens as a key.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION (OIC)
Reel/Frame 014773/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2002
From: MATSUDA, YASUHIRO
To: ORACLE CORPORATION
Reel/Frame 012966/0103 →
Continuity (1)
Related Publication 20030225779A1 · Dec 4, 2003