Partition-by-Query Index for Search Engine Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional search engines face performance limitations due to their indexing methods, which become impractical with large volumes of data, leading to slow search query processing and inefficiencies in handling unstructured data, especially when sharding is required.
Innovation Solution
The implementation of a 'partition-by-query' approach that generates a query index based on expected queries, prioritizes document references, and provides real-time spelling corrections and suggestions by analyzing documents to identify responsive queries, using techniques like hypergeometric distributions and Monte Carlo simulations for relevance determination.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional inverted index is used to store all document-word associations, then search completeness is improved, but index size and storage requirements worsen exponentially with data volume
Solution Approach 1:
The patent segments the inverted index by partitioning it into multiple smaller index files based on document ranges. Each index file contains a subset of the document-word associations, organized by document ID ranges. This segmentation reduces the size of individual index files that can be loaded into memory, while collectively maintaining complete search coverage across all documents.
Solution Approach 2:
The patent introduces a new dimension for index organization by sorting index entries by document ID rather than by word frequency or traditional inverted order. This dimensional reorganization enables efficient range queries and allows the index to be partitioned into manageable segments based on document ID ranges, improving both storage efficiency and query performance.
2Volume of stationary object
If partition-by-document sharding is used to distribute index across multiple machines, then storage capacity is improved, but query processing time worsens due to broadcasting queries to each machine
Solution Approach 1:
The patent applies preliminary action by pre-sorting index entries by document ID during index construction. This pre-organization enables the index to be naturally partitioned into contiguous document ranges that can be distributed across multiple machines. When a query arrives, the system can immediately determine which partition contains the relevant documents without broadcasting to all machines, significantly reducing query processing time.
3Speed
If complete inverted index is maintained in memory for fast access, then search speed is improved, but memory requirements worsen with large datasets
Solution Approach 1:
The patent segments the inverted index into multiple smaller index files that can be individually loaded into memory based on query requirements. Instead of loading the complete index, the system loads only the relevant index segments corresponding to the document ranges needed for the current query, reducing memory requirements while maintaining fast in-memory access speeds for the active segment.
Data Source
AI summary
Methods and systems for providing a search engine capability for large datasets are disclosed. These methods and systems employ a Partition-by-Query index containing key-values pairs corresponding to keys reflecting concept-ordered search phrases and values reflecting ordered lists of document references that are responsive to the concept-ordered search phrase in a corresponding key. A large Partition-by-Query index may be partitioned across multiple servers depending on the size of the index, or the size of the index may be reduced by compressing query-references pairs into clusters. The methods and systems described herein may to provide suggestions and spelling corrections to the user, thereby improving the user's search engine experience while meeting user expectations for search quality and responsiveness.


