IP Library Granted Patent US 9,965,788
Granted Patent B2
US 9,965,788 · App. 14/498,054 · Granted May 8, 2018

System and method for prioritized product index searching

Inventors: Varun Srivastava (Sunnyvale, CA); Yiye Ruan (Columbus, OH); Yan Zheng (San Jose, CA)
Assignee: WAL-MART STORES, INC.
G06Q30/0625G06F17/30648G06F17/30672
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 9,965,788
App. No.
14/498,054
Granted
May 8, 2018
Kind
B2
Abstract

A system and method for searching databases is disclosed herein. A database system may comprise a first database cluster H and a second database cluster L. After receiving a search request from a requester, the search request is executed in the first database cluster H to retrieve a first set of results. If the first set of results is greater than a minimum number of results, then the first set of results are presented to the requester. Otherwise, the second database cluster L is searched to retrieve a second set of results. Then the first set of results and the second set of results are presented to the requester. The first database cluster H is stored on a first database server; and the second database cluster L is stored on a second database server apart from the first database server. Other embodiments are also disclosed herein.

Claims (80)

1. A method of searching a database system, the method being implemented via execution of computer instructions configured to run on one or more processing modules and configured to be stored at one or more non-transitory memory storage modules, the method comprising:

receiving a search request from a requester;

executing the search request in a first database cluster H stored on a first database server using a first index H to retrieve a first set of results, wherein the first database cluster H comprises a plurality of first priority records from a plurality of records;

determining if the first set of results is greater than a minimum number of results;

if the first set of results is greater than the minimum number of results, then presenting the first set of results to the requester;

if the first set of results is less than the minimum number of results, executing the search request in a second database cluster L stored on a second database server apart from the first database server using a second index L to retrieve a second set of results, wherein the second database cluster L comprises a plurality of second priority records from the plurality of records determined to be a lower priority than the plurality of first priority records; and

if the first set of results is less than the minimum number of results, presenting the first set of results and the second set of results to the requester;

wherein:

the database system comprises information about products being sold by retailers;

the first database server comprises a first set of one or more database processing modules and a first set of one or more database memory modules;

the second database server comprises a second set of one or more database processing modules and a second set of one or more database memory modules;

the first set of one or more database processing modules has greater processing capabilities than the second set of one or more database processing modules;

the first set of one or more database memory modules has more storage capacity than the second set of one or more database memory modules;

the first set of one or more database processing modules has one or more faster processing cores than the second set of one or more database processing modules; and

the method further comprises:

prior to executing the search request in the second database cluster L using the second index L, searching a pre-selected search term table, the pre-selected search term table comprising prioritized search terms based on historical search queries;

determining if the search request contains a term within the pre-selected search term table;

presenting only the first set of results to the requester if the search request is determined to contain the term within the pre-selected search term table;

determining a popularity factor for each record of the plurality of records using historical data regarding previous search data for each record of the plurality of records by one or more of:

determining, for each record of the plurality of records, a previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records;

using multiple iterations of a learning algorithm to analyze the historical data; or

predicting if each record of the plurality of records will be used as a search term by the requester; and

assigning each record to one of the first database cluster H or the second database cluster L using the popularity factor for each record of the plurality of records.

2. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by each of:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records;

using multiple iterations of the learning algorithm to analyze the historical data; and

predicting if each record of the plurality of records will be used as the search term by the requester.

3. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records.

4. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records; and

using multiple iterations of the learning algorithm to analyze the historical data.

5. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

using multiple iterations of the learning algorithm to analyze the historical data.

6. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

using multiple iterations of the learning algorithm to analyze the historical data; and

predicting if each record of the plurality of records will be used as the search term by the requester.

7. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

predicting if each record of the plurality of records will be used as the search term by the requester.

8. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records.

9. The method of claim 1 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

using multiple iterations of the learning algorithm to analyze the historical data.

10. A system for performing searches, the system comprising:

one or more processing modules; and

one or more non-transitory memory storage modules storing computing instructions configured to run on the one or more processing modules and perform acts of:

receiving a search request from a requester;

executing the search request in a first database cluster H stored on a first database server using a first index H to retrieve a first set of results, wherein the first database cluster H comprises a plurality of first priority records from a plurality of a records;

determining if the first set of results is greater than a minimum number of results;

if the first set of results is greater than the minimum number of results, then presenting the first set of results to the requester;

if the first set of results is less than the minimum number of results, executing the search request in a second database cluster L stored on a second database server apart from the first database server using a second index L to retrieve a second set of results, wherein the second database cluster L comprises a plurality of second priority records from the plurality of records determined to be a lower priority than the plurality of first priority records; and

if the first set of results is less than the minimum number of results, presenting the first set of results and the second set of results to the requester;

wherein:

the system comprises information about products being sold by retailers;

the first database server comprises a first set of one or more database processing modules and a first set of one or more database memory modules;

the second database server comprises a second set of one or more database processing modules and a second set of one or more database memory modules;

the first set of one or more database processing modules has greater processing capabilities than the second set of one or more database processing modules;

the first set of one or more database memory modules has more storage capacity than the second set of one or more database memory modules;

the first set of one or more database processing modules has one or more faster processing cores than the second set of one or more database processing modules; and

the one or more non-transitory memory storage modules storing the computing instructions are further configured to run on the one or more processing modules and perform acts of:

prior to executing the search request in the second database cluster L using the second index L, searching a pre-selected search term table, wherein the pre-selected search term table comprises prioritized search terms based on historical search queries;

determining if the search request contains a term within the pre-selected search term table;

presenting only the first set of results to the requester if the search request is determined to contain the term within the pre-selected search term table;

determining a popularity factor for each record of the plurality of records using historical data regarding previous search data for each record of the plurality of records by one or more of:

 determining, for each record of the plurality of records, a previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records;

 using multiple iterations of a learning algorithm to analyze the historical data; or

 predicting if each record of the plurality of records will be used as a search term by the requester; and

assigning each record to one of the first database cluster H or the second database cluster L using the popularity factor for each record of the plurality of records.

11. The system of claim 10 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by each of:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records;

using multiple iterations of the learning algorithm to analyze the historical data; and

predicting if each record of the plurality of records will be used as the search term by the requester.

12. The system of claim 10 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

determining, for each record of the plurality of records, the previous status of each record of the plurality of records in the plurality of first priority records or the plurality of second priority records; and

using multiple iterations of the learning algorithm to analyze the historical data.

13. The system of claim 10 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

using multiple iterations of the learning algorithm to analyze the historical data; and

predicting if each record of the plurality of records will be used as the search term by the requester.

14. The system of claim 10 , wherein determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records comprises determining the popularity factor for each record of the plurality of records using the historical data regarding the previous search data for each record of the plurality of records by:

predicting if each record of the plurality of records will be used as the search term by the requester.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2018
From: WAL-MART STORES, INC.
To: WALMART APOLLO, LLC
Reel/Frame 045817/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2014
From: SRIVASTAVA, VARUN; RUAN, YIYE; ZHENG, YAN
To: WAL-MART STORES, INC.
Reel/Frame 033929/0631 →
Continuity (1)
Related Publication 20160092564A1 · Mar 31, 2016