Inverted List Indexing for Taxonomy Search Data Volume
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In electronic document search systems using a taxonomy with directed acyclic graphs, existing methods struggle to efficiently search for data related to higher-order semantic classes due to increased processing time and data volume, leading to slow inquiry speeds and potential storage overflow issues.
Innovation Solution
A data structure and method that divide the inverted list of each node in the taxonomy into blocks, converting differential values into variable-length integer codes, and use ancestor nodes to reference higher nodes, allowing for efficient retrieval of search subject data by storing integer values indicating positions within the inverted list.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the inverted list of each node in the taxonomy is stored in full, then complete search coverage is achieved, but data volume increases and storage overflow occurs
Solution Approach 1:
The patent implements nested inverted lists where the inverted list of a higher-order node contains references to the inverted lists of its lower-order nodes. This nested structure allows the system to maintain complete search coverage by enabling traversal through multiple levels of the taxonomy hierarchy, while significantly reducing data volume by storing references rather than duplicating full inverted lists at each level.
Solution Approach 2:
The patent merges the inverted lists of multiple nodes into a unified hierarchical structure. Instead of maintaining separate, redundant inverted lists for each node in the taxonomy, the system combines them into a single hierarchical inverted index where higher-order nodes reference lower-order nodes, eliminating redundancy and reducing overall data storage requirements.
2Adaptability or versatility
If the taxonomy structure is expanded to include more semantic classes, then search versatility improves, but processing time increases and inquiry speed decreases
Solution Approach 1:
The patent performs preliminary organization of the taxonomy structure into a hierarchical inverted index before search operations. The inverted lists are pre-computed and structured with ancestor references established in advance, allowing the search system to quickly traverse the pre-organized structure without performing complex computations during actual search operations, thus maintaining fast inquiry speeds even with expanded taxonomies.
Solution Approach 2:
The patent segments the large taxonomy into a hierarchical structure with multiple levels of semantic classes. Each node in the hierarchy has its own inverted list that references relevant documents, allowing the search system to process queries by traversing only the necessary portions of the hierarchy rather than scanning the entire taxonomy, thereby reducing processing time while maintaining search versatility.
3Productivity
If ancestor node references are implemented, then data retrieval efficiency improves, but data structure complexity increases
Solution Approach 1:
The patent introduces ancestor node references as intermediaries that connect higher-order semantic classes to their descendant nodes in the taxonomy hierarchy. These references act as mediators that enable efficient navigation and retrieval by providing direct pointers to relevant inverted lists, reducing the need for complex traversal algorithms while maintaining a relatively simple data structure that builds upon the standard inverted index model.
Data Source
AI summary
In an inverted list of each node in a taxonomy, among each node, an inverted list of the highest node is a list of integer values indicating an identifier of search subject data, and an inverted list of a node other than the highest node, in place of the identifier, is a list of integer values indicating a position in an inverted list corresponding to a node that is higher by one than the node. Furthermore, a list of integer values in an inverted list of each node is divided into two or more blocks, and a differential value between an integer value and an integer value directly before the integer value in the block is converted into a bit string of a variable length integer code.


