IP Library Granted Patent US 10,255,320
Granted Patent B1
US 10,255,320 · App. 14/606,178 · Granted Apr 9, 2019

Search integration

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 10,255,320
App. No.
14/606,178
Granted
Apr 9, 2019
Kind
B1
Abstract

Search integration is described. The actions include receiving, by one or more processors, a query. The actions include identifying search results that are responsive to the query. The actions include identifying, based on the query and the search results, structured data to supplement the search results, wherein the structured data is generated from binary table data that is received and deserialized by one or more processing modules. The actions include processing the structured data and the search results. The actions include providing, for output, the processed search results and the processed structured data results.

Claims (55)

1. A computer-implemented method comprising:

receiving, by a computing device, a query;

identifying, by the computing device, search results that are responsive to the query;

based on the query and the search results, identifying, by the computing device, structured data that supplements the search results;

determining, by a listening module of the computing device, that the structured data is ready for transmission to the computing device;

providing, by the listening module of the computing device and to a receiving module of the computing device, data identifying a port on which to receive the structured data;

receiving, by the receiving module of the computing device through the port identified by the listening module, the structured data;

determining, by the receiving module of the computing device, that the structured data is likely free of errors by calculating a checksum of the structured data;

in response to determining that the structured data is likely free of errors, decompressing, by the decompress module of the computing device, the structured data;

deserializing, by a deserialize module of the computing device, the decompressed structured data;

after deserializing the decompressed structured data, determining, by the computing device, a first processing load of an in-memory engine and a second processing load of the computing device;

based on the first processing load of the in-memory engine and the second processing load of the computing device, determining an initial portion of the deserialized structured data and the search results to be processed by the in-memory engine to balance processing loads of the in-memory engine and the computing device;

processing, by the computing device, a remaining portion of the deserialized structured data and the search results; and

providing, by the computing device and for output to the in-memory engine, the processed remaining portion of the search results and the deserialized structured data and the initial portion of the deserialized structured data and the search results.

2. The method of claim 1 , wherein the query is a natural language query.

3. The method of claim 1 , wherein the query is received through a dashboard application.

4. The method of claim 1 , wherein processing the structured data and the search results includes:

performing analytics, filtering, aggregation, wrangling, searching, data mining, text analytics, on demand loading, incremental refreshing, streaming, data blending, complex ETL workflows, or multi-sourcing.

5. The method of claim 1 , wherein identifying search results that are responsive to the query comprises:

identifying, using a search index, search results that are responsive to the query.

6. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a computing device, a query;

identifying, by the computing device, search results that are responsive to the query;

based on the query and the search results, identifying, by the computing device, structured data that supplements the search results;

determining, by a listening module of the computing device, that the structured data is ready for transmission to the computing device;

providing, by the listening module of the computing device and to a receiving module of the computing device, data identifying a port on which to receive the structured data;

receiving, by the receiving module of the computing device through the port identified by the listening module, the structured data;

determining, by the receiving module of the computing device, that the structured data is likely free of errors by calculating a checksum of the structured data;

in response to determining that the structured data is likely free of errors, decompressing, by the decompress module of the computing device, the structured data;

deserializing, by a deserialize module of the computing device, the decompressed structured data;

after deserializing the decompressed structured data, determining, by the computing device, a first processing load of an in-memory engine and a second processing load of the computing device;

based on the first processing load of the in-memory engine and the second processing load of the computing device, determining an initial portion of the deserialized structured data and the search results to be processed by the in-memory engine to balance processing loads of the in-memory engine and the computing device;

processing, by the computing device, a remaining portion of the deserialized structured data and the search results; and

providing, by the computing device and for output to the in-memory engine, the processed remaining portion of the search results and the deserialized structured data and the initial portion of the deserialized structured data and the search results.

7. The system of claim 6 , wherein the query is a natural language query.

8. The system of claim 6 , wherein the query is received through a dashboard application.

9. The system of claim 6 , wherein processing the structured data and the search results includes:

performing analytics, filtering, aggregation, wrangling, searching, data mining, text analytics, on demand loading, incremental refreshing, streaming, data blending, complex ETL workflows, or multi-sourcing.

10. The system of claim 6 , wherein identifying search results that are responsive to the query comprises:

identifying, using a search index, search results that are responsive to the query.

11. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

receiving, by a computing device, a query;

identifying, by the computing device, search results that are responsive to the query;

based on the query and the search results, identifying, by the computing device, structured data that supplements the search results;

determining, by a listening module of the computing device, that the structured data is ready for transmission to the computing device;

providing, by the listening module of the computing device and to a receiving module of the computing device, data identifying a port on which to receive the structured data;

receiving, by the receiving module of the computing device through the port identified by the listening module, the structured data;

determining, by the receiving module of the computing device, that the structured data is likely free of errors by calculating a checksum of the structured data;

in response to determining that the structured data is likely free of errors, decompressing, by the decompress module of the computing device, the structured data;

deserializing, by a deserialize module of the computing device, the decompressed structured data;

after deserializing the decompressed structured data, determining, by the computing device, a first processing load of an in-memory engine and a second processing load of the computing device;

based on the first processing load of the in-memory engine and the second processing load of the computing device, determining an initial portion of the deserialized structured data and the search results to be processed by the in-memory engine to balance processing loads of the in-memory engine and the computing device;

processing, by the computing device, a remaining portion of the deserialized structured data and the search results; and

providing, by the computing device and for output to the in-memory engine, the processed remaining portion of the search results and the deserialized structured data and the initial portion of the deserialized structured data and the search results.

Assignments (6)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072909/0870 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2019
From: LUO, YI; LANDERS, RACHEL HYLTON; OJHA, ANANYA; CHENG, ZHILI; LIANG, DONGPING
To: MICROSTRATEGY INCORPORATED
Reel/Frame 050850/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LUO, YI
To: MICROSTRATEGY INCORPORATED
Reel/Frame 050288/0737 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: CAPPIELLO, SCOTT
To: MICROSTRATEGY INCORPORATED
Reel/Frame 038309/0365 →