Sparse Data Storage in Search Index via Integer Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for storing sparse data in search indices create a high number of columns, which negatively impact performance and capacity, as only a small percentage of entities have corresponding data points, leading to inefficient use of resources.

Innovation Solution

Implementing an integer array within a single column in the search index to store sparse data points, including an identifier and a value associated with the data point, and transforming queries based on the identifier to provide user-compatible results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If two columns are created in the search index for every entity to accommodate match count and match confidence value, then the data points can be stored and queried, but the search index includes a high percentage of columns for a very small amount of data, negatively impacting performance and capacity

Engineering Contradiction:
Improvedata query capabilityVSAvoidnumber of columns in search index
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent combines multiple entity-specific columns into a single consolidated column that stores sparse data points. Instead of creating separate columns for each entity's match count and confidence value, the invention merges these into one column that can accommodate data points from multiple entities, thereby reducing the total number of columns while maintaining query capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent transitions from a wide-schema approach (many columns) to a long-schema approach (fewer columns with more rows). By storing sparse data in a vertical format within a single column rather than distributing data across multiple horizontal columns, the invention changes the dimensional organization of data, reducing column count while preserving data accessibility.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of information

If two columns are created for every entity, then match count and confidence values can be stored, but only about 1-2% of entities have corresponding data points, leading to inefficient use of resources

Engineering Contradiction:
Improvedata point storage completenessVSAvoidmemory space required
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary data points from the sparse dataset and stores them in a dedicated column, rather than allocating space for all possible entities. By taking out and storing only the actual data points that exist (1-2% of potential entities), the invention eliminates wasted memory space while ensuring complete storage of relevant information.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the storage parameter from a fixed wide schema with predetermined columns for each entity to a dynamic structure where only actual data points are stored. This parameter change allows the system to adapt to the sparsity of the data, storing information efficiently without pre-allocating memory for non-existent data points.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If many columns are created in the search index to accommodate all entities, then all potential data points can be queried, but each additional column negatively impacts system performance and capacity

Engineering Contradiction:
Improvequery coverageVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a single column that serves multiple functions by storing data points from multiple different entities. This universal column can accommodate match count and confidence values for any entity that has sparse data, providing the same query coverage as multiple entity-specific columns would have offered, while improving system performance through reduced column count.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9720946B2Efficient storage of related sparse data in a search index
Publication Date: 2017.08.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9720946B2 patent drawing
  • US9720946B2 patent drawing
  • US9720946B2 patent drawing

AI summary

Sparse data may be stored in a search index such that one or more data points related to a number of entities may be queriable. Upon detection of a data point related to an entity, an integer array may be created for the data point to store within a single column of the search index, the integer array including an identifier of the entity and a value associated with the data point. In response to receiving a request from a user to perform a query on the search index that includes the data point, the query may be transformed to a corresponding range based on the identifier of the entity. Upon execution of the query, the identifier may be removed and query results may be provided to the user as another array with a user-compatible identifier for the entity such that the results may be understood by the user.