Bit Vector Search Index for Real-Time Document Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional search systems face inefficiencies in indexing and querying large volumes of documents due to the complexities of posting lists, leading to slow update times and inability to provide real-time search results for new information, especially with the increasing volume of data on the internet.

Innovation Solution

The implementation of a bit vector search index, which uses arrays of bits to represent documents and terms, allowing for efficient intersection and union operations to identify matching documents, enabling instant updates and real-time indexing of new content without the need for sorting or reorganization of data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional posting lists are used to index documents, then the search system can identify documents containing query terms, but the update time increases and real-time search results cannot be provided

Engineering Contradiction:
Improvesearch result accuracyVSAvoidupdate time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent changes the data structure representation from traditional posting lists to bit vectors. Each document is represented by a bit vector where bits indicate the presence of terms. This parameter change enables efficient bitwise operations for updating and querying, allowing real-time search results while maintaining accurate document-term relationship indexing.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If traditional posting lists are used for indexing, then documents can be ranked by relevance, but the processing speed decreases due to complexity

Engineering Contradiction:
Improvedocument ranking accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical sorting and list-based operations of traditional posting lists with bitwise operations on bit vectors. Bitwise AND, OR, and NOT operations can be performed in parallel at the hardware level, dramatically increasing processing speed while maintaining the ability to rank documents by relevance through efficient intersection and union operations.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent segments the indexing structure into multiple bit vectors, each representing a document's term presence. This segmentation allows independent processing of each bit vector and enables parallel operations across multiple documents, improving overall processing speed while maintaining ranking accuracy through systematic bitwise operations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If posting lists are used to store document information, then the index can be constructed, but the storage efficiency decreases and resources are consumed

Engineering Contradiction:
Improveindex completenessVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent changes the storage representation from list-based structures to compact bit vectors. Each document's term information is encoded in a bit vector where each bit represents the presence or absence of a term. This parameter change achieves space-efficient storage while maintaining complete index information, as bit vectors use minimal space compared to traditional posting lists that store document identifiers and frequencies.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10467215B2Matching documents using a bit vector search index
Publication Date: 2019.11.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10467215B2 patent drawing
  • US10467215B2 patent drawing
  • US10467215B2 patent drawing

AI summary

The technology described herein provides for identifying matching documents for a search query using a bit vector search index. When a search query is received, a term is identified from the search index, and a number of bit vectors corresponding to the term are identified. Each bit vector comprises an array of bits in which at least one bit in each bit vector indicates that a corresponding document includes the term. Each bit vector also includes other bits indicating other documents include other terms. The identified bit vectors are intersected to identify matching documents that contain the term.