US20170148078A1 - Dynamic attributes for searching - Google Patents
Dynamic attributes for searching Download PDFInfo
- Publication number
- US20170148078A1 US20170148078A1 US14/946,173 US201514946173A US2017148078A1 US 20170148078 A1 US20170148078 A1 US 20170148078A1 US 201514946173 A US201514946173 A US 201514946173A US 2017148078 A1 US2017148078 A1 US 2017148078A1
- Authority
- US
- United States
- Prior art keywords
- product
- categories
- search
- index
- search query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2425—Iterative querying; Query formulation based on the results of a preceding query
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G06F17/30598—
-
- G06F17/30867—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Electronic shopping [e-shopping] by investigating goods or services
- G06Q30/0625—Electronic shopping [e-shopping] by investigating goods or services by formulating product or service queries, e.g. using keywords or predefined options
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Electronic shopping [e-shopping] utilising user interfaces specially adapted for shopping
Definitions
- product search engines are utilized to implement search functionality for documents within one or more databases.
- each document represents a product in one or more product databases for an e-commerce search engine.
- the products are described by one or more attributes that could be organized in a faceted classification framework. The attributes may describe or indicate characteristics of the product itself and/or a product category.
- a faceted search engine When a faceted search engine processes a search query, it typically identifies one or more attributes in the search query string, finds documents that have the identified attribute values, and returns the results based on matches for the attributes.
- Faceted search engines typically have a static list of fields and/or facets that is predetermined prior to query time. Many databases have a large number (potentially thousands) of attributes to search. This type of search engine may suffer performance degradation as the number of facets increases because traditional faceting mechanisms may not be scalable from a performance or quality standpoint.
- FIG. 1 is a block diagram illustrating a dynamic attribute search engine system according to one embodiment of the present disclosure
- FIG. 2 is a diagram illustrating a method for carrying out a search query according to one embodiment of the present disclosure.
- Embodiments in accordance with the present disclosure may be embodied as an apparatus, method, or computer program product. Accordingly, the present disclosure may take the form of an entirely hardware-comprised embodiment, an entirely software-comprised embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, embodiments of the present disclosure may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
- FIG. 1 is a block diagram depicting a dynamic attribute search engine system 100 according to one embodiment of the present disclosure.
- dynamic attribute search engine system 100 includes processing device 101 , memory device 103 , product database 110 , and index 130 .
- memory device 103 has computer-readable instructions to direct processing device 101 to implement data ingestor 120 , query service 140 , and faceted searcher 150 .
- the foregoing components and/or modules may be embodied as computer-readable instructions stored on various types of media. Any combination of one or more computer-usable or computer-readable media may be utilized in various embodiments of the present disclosure.
- a computer-readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CD-ROM), an optical storage device, and a magnetic storage device.
- Computer program code for carrying out operations of the present disclosure may be written in any combination of one or more programming languages. Such code may be compiled from source code to computer-readable assembly language or machine code suitable for the device or computer on which the code will be executed.
- product database 110 comprises a database for storing all products that are potentially available for searching.
- product database 110 stores products and their attributes as key-value pairs.
- Embodiments of product database 110 are adapted to store a unique product identifier for each product.
- Other embodiments store a string representing the product name.
- attributes may describe or correspond to one or more product categories or product characteristics.
- product database 110 comprises information regarding product and product attributes from one or more product data feeds.
- Product data feeds may be generated from various types or combinations of merchant product databases.
- product database 110 is generated by collecting product information from one or more merchant websites and/or website backend product database.
- products may be added to or removed from product database 110 to reflect current product availability.
- data ingestor 120 comprises a computer processor and computer-readable instructions that direct the processor to ingest key-value pairs from product database 110 into index 130 .
- the products and attributes in database 110 are in a continuous state of update, with products being added and removed to reflect product availability. Accordingly, data ingestor 120 can dynamically ingest new sets of products and attributes as frequently and in real-time or near real-time as the products and/or product attributes change in product database 110 .
- index 130 comprises a unified data structure.
- Embodiments of index 130 comprise a schemaless data store having numerous product attribute key-value pairs (in one illustrative example, key and value pairs for each product are stored as follows: “ ⁇ key 1
- Index 130 may dynamically add or remove key-value pairs in response to instructions from data ingestion module 120 to reflect current product attributes and/or current product availability.
- each key/value pair defines an attribute of a product.
- each key is a product attribute and the corresponding value is the value for that attribute for a particular product.
- a printer product may be associated with a key “printer type” with attribute values selected from “laserjet,” “inkjet,” etc.
- any number of product attributes and attribute values may be stored in index 130 and associated with any number of products.
- query service 140 comprises a computer processor and computer-readable instructions that are adapted to receive search queries from various user search interfaces where users can submit queries for products and/or product attributes.
- Search interfaces may comprise a merchant website, a search engine website, a smartphone app, or other types of user interfaces by which a user can submit a product search query.
- Query service 140 is further configured to execute search queries on index 130 as described in further detail below.
- query service 140 can execute a search query by searching for matches between terms in the search query and product attributes and/or attribute values stored at index 130 .
- matching attributes and/or attribute values are transmitted to faceted searcher 150 for dynamic post processing of search facets.
- faceted searcher 150 comprises a computer processor and computer-readable instructions that are adapted to carry out facet processing on search queries.
- faceted searcher 150 carries out post-processing selection of facets based on the attributes entered in the search query and matched from index 130 .
- no lists, fields, and/or facets are predetermined prior to query time.
- Faceted searcher 150 can select best-fit facets across all attributes for the given query result set.
- faceted searcher 150 can analyze the search query and determine the appropriate categories to search.
- faceted searcher 150 is programmed to determine the categories for the top search query results and return facets that are relevant to those top categories.
- faceted searcher 150 is programmed to return a set number of facets. For example, in one embodiment, the top five facets are returned. In other embodiments, the number of facets to be returned is determined dynamically for each search query. For example, a matching score threshold may be instituted, where all categories/facets that have a matching score above or at the threshold are returned.
- Embodiments of the present disclosure may be implemented in cloud computing environments.
- cloud computing may be defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization and released with minimal management effort or service provider interaction and then scaled accordingly.
- configurable computing resources e.g., networks, servers, storage, applications, and services
- a cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”)), and deployment models (e.g., private cloud, community cloud, public cloud, and hybrid cloud).
- service models e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”)
- deployment models e.g., private cloud, community cloud, public cloud, and hybrid cloud.
- each block in the flowcharts or block diagram may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- each block and/or multiple blocks in the flowcharts or block diagrams may represent one or more physical systems, such as one or more server systems, a collection of systems (e.g., bladed server systems), a cluster of systems, mainframe computer system, or any type and configuration of systems.
- Such systems may also include virtualized resources such as virtual server systems, and may include one or more levels of virtualization.
- module(s) and/or segment(s) or portion(s) of code may be implemented across sites to provide redundancy in the case of site or system failure.
- each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
- These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowcharts and/or block diagram block or blocks.
- embodiments of the present disclosure are configured to carry out product search queries.
- FIG. 2 an illustration of a method 200 for executing a product search is set forth according to one embodiment of the present disclosure.
- Method 200 begins at operation 210 , where a search query is received from a user.
- the user may submit the search query via a search box on a merchant's website, a general search engine website, on a merchant's shopping application installed on a mobile device (such as a smartphone, for example), on other types of mobile device applications, or via other types of interfaces where a search query string can be transmitted to the query service.
- an application program interface (“API”) may be put in place to allow transmission of search queries from users on any number of devices and/or interfaces to the query service.
- API application program interface
- query service conducts a search for matching attributes and/or attribute values in the index.
- the index is created from product data ingested from one or more product databases.
- the query service can identify matches by determining similarities between the query string or portions of the query string with the strings of attributes and/or attribute values in the index.
- query service further searches for synonyms or other complementary terms from the search query or portions of the search query.
- the results of the search for matching attributes and/or attribute values in the index can then be transmitted to the faceted searcher for facet processing.
- the faceted searcher can then aggregate the values received from the search query result into groups.
- each group comprises a set of attribute values for each associated attribute key.
- faceted searcher ranks the groups of attribute values according to the quantity of said attribute values in the results. The attribute keys having higher number of attribute values returned are ranked higher by the faceted searcher. In this manner, faceted searcher can carry out a smart selection of facets without knowing the full set of attributes prior to execution of the search.
- the faceted searcher can determine which facets to return for any particular query by identifying which facets comprise dominant categories in the query.
- the dominant categories may be determined by first selecting a portion of the most relevant products from all products returned by the query service. The number of dominant categories may be selected as a set percentage of the total categories returned by the query service, or the portion may be dynamically selected according to particular circumstances, needs, and/or preferences of the search. In one embodiment, 10% of all products returned from the query are selected. In another embodiment, 20% of all returned products are selected. For the selected products, the unique categories represented are identified. In other embodiments, 10%, 20%, or other static or dynamic portions of unique categories are selected as dominant categories. The unique categories represent the top-ranked facets that will then be searched by the faceted searcher.
- the faceted searcher returns the top-ranked facets to the query service.
- the query service can search the index for products using the dominant categories as search facets and assemble a set of products having attributes matching the top-ranked facets. In some embodiments, these products are then ranked according to additional contextual factors such as user preferences, product availability, product price, or other relevant factors.
- the query service returns the search query product results to the user.
- the search results can be returned to the user via the interface used to submit the search query.
- the search results may include links to product detail pages and/or product purchasing links.
- the search results can be listed in ranked order according to the relevance of the products attributes to the dominant categories.
- the search results can be ranked and listed in an order selected by the user, such as product availability, product price, manufacturer, and the like.
- certain aspects of one embodiment include process steps and/or operations and/or instructions described herein for illustrative purposes in a particular order and/or grouping.
- the particular order and/or grouping shown and discussed herein are illustrative only and not limiting.
- Those of skill in the art will recognize that other orders and/or grouping of the process steps and/or operations and/or instructions are possible and, in some embodiments, one or more of the process steps and/or operations and/or instructions discussed above can be combined and/or deleted.
- portions of one or more of the process steps and/or operations and/or instructions can be re-grouped as portions of one or more other of the process steps and/or operations and/or instructions discussed herein. Consequently, the particular order and/or grouping of the process steps and/or operations and/or instructions discussed herein do not limit the scope of the disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computational Linguistics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- Commonly, product search engines are utilized to implement search functionality for documents within one or more databases. In some cases, each document represents a product in one or more product databases for an e-commerce search engine. In many databases, the products are described by one or more attributes that could be organized in a faceted classification framework. The attributes may describe or indicate characteristics of the product itself and/or a product category.
- When a faceted search engine processes a search query, it typically identifies one or more attributes in the search query string, finds documents that have the identified attribute values, and returns the results based on matches for the attributes. Faceted search engines typically have a static list of fields and/or facets that is predetermined prior to query time. Many databases have a large number (potentially thousands) of attributes to search. This type of search engine may suffer performance degradation as the number of facets increases because traditional faceting mechanisms may not be scalable from a performance or quality standpoint.
- Non-limiting and non-exhaustive embodiments of the present disclosure are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
-
FIG. 1 is a block diagram illustrating a dynamic attribute search engine system according to one embodiment of the present disclosure and -
FIG. 2 is a diagram illustrating a method for carrying out a search query according to one embodiment of the present disclosure. - Corresponding reference characters indicate corresponding components throughout the several views of the drawings. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present disclosure. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present disclosure.
- The present disclosure is directed to methods, systems, and computer programs for using attributes in search engines. In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the concepts disclosed herein, and it is to be understood that modifications to the various disclosed embodiments may be made, and other embodiments may be utilized, without departing from the spirit and scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense.
- Reference throughout this specification to “one embodiment,” “an embodiment,” “one example,” or “an example” means that a particular feature, structure, or characteristic described in connection with the embodiment or example is included in at least one embodiment of the present disclosure. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” “one example,” or “an example” in various places throughout this specification are not necessarily all referring to the same embodiment or example. Furthermore, the particular features, structures, or characteristics may be combined in any suitable combinations and/or sub-combinations in one or more embodiments or examples. In addition, it should be appreciated that the figures provided herewith are for explanation purposes to persons ordinarily skilled in the art and that the drawings are not necessarily drawn to scale.
- Embodiments in accordance with the present disclosure may be embodied as an apparatus, method, or computer program product. Accordingly, the present disclosure may take the form of an entirely hardware-comprised embodiment, an entirely software-comprised embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, embodiments of the present disclosure may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
-
FIG. 1 is a block diagram depicting a dynamic attributesearch engine system 100 according to one embodiment of the present disclosure. In an embodiment, dynamic attributesearch engine system 100 includesprocessing device 101,memory device 103,product database 110, andindex 130. In one embodiment,memory device 103 has computer-readable instructions to directprocessing device 101 to implementdata ingestor 120,query service 140, and facetedsearcher 150. According to various embodiments, the foregoing components and/or modules may be embodied as computer-readable instructions stored on various types of media. Any combination of one or more computer-usable or computer-readable media may be utilized in various embodiments of the present disclosure. For example, a computer-readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or Flash memory) device, a portable compact disc read-only memory (CD-ROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out operations of the present disclosure may be written in any combination of one or more programming languages. Such code may be compiled from source code to computer-readable assembly language or machine code suitable for the device or computer on which the code will be executed. - In embodiments,
product database 110 comprises a database for storing all products that are potentially available for searching. In various forms,product database 110 stores products and their attributes as key-value pairs. Embodiments ofproduct database 110 are adapted to store a unique product identifier for each product. Other embodiments store a string representing the product name. For products having multiple attributes, there may be multiple attribute key-value pairs inproduct database 110 for that product. In embodiments, attributes may describe or correspond to one or more product categories or product characteristics. - In one embodiment,
product database 110 comprises information regarding product and product attributes from one or more product data feeds. Product data feeds may be generated from various types or combinations of merchant product databases. In one embodiment,product database 110 is generated by collecting product information from one or more merchant websites and/or website backend product database. In embodiments, as the availability of various products changes, products may be added to or removed fromproduct database 110 to reflect current product availability. - In one embodiment,
data ingestor 120 comprises a computer processor and computer-readable instructions that direct the processor to ingest key-value pairs fromproduct database 110 intoindex 130. In embodiments, the products and attributes indatabase 110 are in a continuous state of update, with products being added and removed to reflect product availability. Accordingly,data ingestor 120 can dynamically ingest new sets of products and attributes as frequently and in real-time or near real-time as the products and/or product attributes change inproduct database 110. - In embodiments,
index 130 comprises a unified data structure. Embodiments ofindex 130 comprise a schemaless data store having numerous product attribute key-value pairs (in one illustrative example, key and value pairs for each product are stored as follows: “{key1|value1, key2|value2, key3|value3, . . . keyn|valuen}”).Index 130 may dynamically add or remove key-value pairs in response to instructions fromdata ingestion module 120 to reflect current product attributes and/or current product availability. According to various embodiments, each key/value pair defines an attribute of a product. In one embodiment, each key is a product attribute and the corresponding value is the value for that attribute for a particular product. For example, a printer product may be associated with a key “printer type” with attribute values selected from “laserjet,” “inkjet,” etc. In embodiments, any number of product attributes and attribute values may be stored inindex 130 and associated with any number of products. - According to embodiments,
query service 140 comprises a computer processor and computer-readable instructions that are adapted to receive search queries from various user search interfaces where users can submit queries for products and/or product attributes. Search interfaces may comprise a merchant website, a search engine website, a smartphone app, or other types of user interfaces by which a user can submit a product search query.Query service 140 is further configured to execute search queries onindex 130 as described in further detail below. In one embodiment,query service 140 can execute a search query by searching for matches between terms in the search query and product attributes and/or attribute values stored atindex 130. In embodiments, matching attributes and/or attribute values are transmitted to facetedsearcher 150 for dynamic post processing of search facets. - In one embodiment, faceted
searcher 150 comprises a computer processor and computer-readable instructions that are adapted to carry out facet processing on search queries. In embodiments, facetedsearcher 150 carries out post-processing selection of facets based on the attributes entered in the search query and matched fromindex 130. According to embodiments, no lists, fields, and/or facets are predetermined prior to query time.Faceted searcher 150 can select best-fit facets across all attributes for the given query result set. In embodiments,faceted searcher 150 can analyze the search query and determine the appropriate categories to search. In embodiments,faceted searcher 150 is programmed to determine the categories for the top search query results and return facets that are relevant to those top categories. In one embodiment,faceted searcher 150 is programmed to return a set number of facets. For example, in one embodiment, the top five facets are returned. In other embodiments, the number of facets to be returned is determined dynamically for each search query. For example, a matching score threshold may be instituted, where all categories/facets that have a matching score above or at the threshold are returned. - Embodiments of the present disclosure may be implemented in cloud computing environments. In this description and the following claims, “cloud computing” may be defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization and released with minimal management effort or service provider interaction and then scaled accordingly. A cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service), service models (e.g., Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”)), and deployment models (e.g., private cloud, community cloud, public cloud, and hybrid cloud).
- The flowcharts and block diagram in the attached figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagram may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It is noted that each block and/or multiple blocks in the flowcharts or block diagrams may represent one or more physical systems, such as one or more server systems, a collection of systems (e.g., bladed server systems), a cluster of systems, mainframe computer system, or any type and configuration of systems. Such systems may also include virtualized resources such as virtual server systems, and may include one or more levels of virtualization. In embodiments, such module(s) and/or segment(s) or portion(s) of code may be implemented across sites to provide redundancy in the case of site or system failure. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowcharts and/or block diagram block or blocks.
- In operation, embodiments of the present disclosure are configured to carry out product search queries. Referring to
FIG. 2 , an illustration of amethod 200 for executing a product search is set forth according to one embodiment of the present disclosure.Method 200 begins atoperation 210, where a search query is received from a user. The user may submit the search query via a search box on a merchant's website, a general search engine website, on a merchant's shopping application installed on a mobile device (such as a smartphone, for example), on other types of mobile device applications, or via other types of interfaces where a search query string can be transmitted to the query service. In embodiments, an application program interface (“API”) may be put in place to allow transmission of search queries from users on any number of devices and/or interfaces to the query service. - At
operation 220, query service conducts a search for matching attributes and/or attribute values in the index. As described above, the index is created from product data ingested from one or more product databases. The query service can identify matches by determining similarities between the query string or portions of the query string with the strings of attributes and/or attribute values in the index. In embodiments, query service further searches for synonyms or other complementary terms from the search query or portions of the search query. The results of the search for matching attributes and/or attribute values in the index can then be transmitted to the faceted searcher for facet processing. - The faceted searcher can then aggregate the values received from the search query result into groups. In embodiments, each group comprises a set of attribute values for each associated attribute key. At
operation 230, faceted searcher ranks the groups of attribute values according to the quantity of said attribute values in the results. The attribute keys having higher number of attribute values returned are ranked higher by the faceted searcher. In this manner, faceted searcher can carry out a smart selection of facets without knowing the full set of attributes prior to execution of the search. - In embodiments, the faceted searcher can determine which facets to return for any particular query by identifying which facets comprise dominant categories in the query. The dominant categories may be determined by first selecting a portion of the most relevant products from all products returned by the query service. The number of dominant categories may be selected as a set percentage of the total categories returned by the query service, or the portion may be dynamically selected according to particular circumstances, needs, and/or preferences of the search. In one embodiment, 10% of all products returned from the query are selected. In another embodiment, 20% of all returned products are selected. For the selected products, the unique categories represented are identified. In other embodiments, 10%, 20%, or other static or dynamic portions of unique categories are selected as dominant categories. The unique categories represent the top-ranked facets that will then be searched by the faceted searcher.
- The faceted searcher returns the top-ranked facets to the query service. At
operation 240, the query service can search the index for products using the dominant categories as search facets and assemble a set of products having attributes matching the top-ranked facets. In some embodiments, these products are then ranked according to additional contextual factors such as user preferences, product availability, product price, or other relevant factors. - At
operation 250, the query service returns the search query product results to the user. The search results can be returned to the user via the interface used to submit the search query. The search results may include links to product detail pages and/or product purchasing links. According to embodiments, the search results can be listed in ranked order according to the relevance of the products attributes to the dominant categories. Alternatively, the search results can be ranked and listed in an order selected by the user, such as product availability, product price, manufacturer, and the like. - In the discussion above, certain aspects of one embodiment include process steps and/or operations and/or instructions described herein for illustrative purposes in a particular order and/or grouping. However, the particular order and/or grouping shown and discussed herein are illustrative only and not limiting. Those of skill in the art will recognize that other orders and/or grouping of the process steps and/or operations and/or instructions are possible and, in some embodiments, one or more of the process steps and/or operations and/or instructions discussed above can be combined and/or deleted. In addition, portions of one or more of the process steps and/or operations and/or instructions can be re-grouped as portions of one or more other of the process steps and/or operations and/or instructions discussed herein. Consequently, the particular order and/or grouping of the process steps and/or operations and/or instructions discussed herein do not limit the scope of the disclosure.
- Although the present disclosure is described in terms of certain preferred embodiments, other embodiments will be apparent to those of ordinary skill in the art, given the benefit of this disclosure, including embodiments that do not provide all of the benefits and features set forth herein, which are also within the scope of this disclosure. It is to be understood that other embodiments may be utilized, without departing from the spirit and scope of the present disclosure.
Claims (16)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/946,173 US10353966B2 (en) | 2015-11-19 | 2015-11-19 | Dynamic attributes for searching |
| PCT/US2016/062566 WO2017087694A1 (en) | 2015-11-19 | 2016-11-17 | Dynamic attributes for searching |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/946,173 US10353966B2 (en) | 2015-11-19 | 2015-11-19 | Dynamic attributes for searching |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20170148078A1 true US20170148078A1 (en) | 2017-05-25 |
| US10353966B2 US10353966B2 (en) | 2019-07-16 |
Family
ID=58717820
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/946,173 Active 2037-01-15 US10353966B2 (en) | 2015-11-19 | 2015-11-19 | Dynamic attributes for searching |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10353966B2 (en) |
| WO (1) | WO2017087694A1 (en) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170140067A1 (en) * | 2015-11-12 | 2017-05-18 | Sick Ag | Method Having a Search Program and a Search Box |
| US20180322540A1 (en) * | 2017-05-04 | 2018-11-08 | Wal-Mart Stores, Inc. | Systems and methods for updating website modules |
| CN110020063A (en) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | Method for vertical search and system |
| US20200293566A1 (en) * | 2018-07-18 | 2020-09-17 | International Business Machines Corporation | Dictionary Editing System Integrated With Text Mining |
| US11030652B2 (en) * | 2019-01-22 | 2021-06-08 | Walmart Apollo, Llc | Systems and methods for facet discovery |
| US20220207087A1 (en) * | 2020-12-26 | 2022-06-30 | International Business Machines Corporation | Optimistic facet set selection for dynamic faceted search |
| US20230169199A1 (en) * | 2017-02-24 | 2023-06-01 | Hyland Uk Operations Limited | Permissions-constrained dynamic faceting of search results in a content management system |
| US11940996B2 (en) | 2020-12-26 | 2024-03-26 | International Business Machines Corporation | Unsupervised discriminative facet generation for dynamic faceted search |
| WO2025111700A1 (en) * | 2023-11-28 | 2025-06-05 | GroupBy Inc. | Fitment based product search and filtering |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230030686A1 (en) * | 2021-07-27 | 2023-02-02 | Synchrony Bank | Dynamic offer selection system |
| US20230029913A1 (en) * | 2021-07-27 | 2023-02-02 | Synchrony Bank | Multi-product platform |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6856992B2 (en) | 2001-05-15 | 2005-02-15 | Metatomix, Inc. | Methods and apparatus for real-time business visibility using persistent schema-less data storage |
| AU2002365577A1 (en) | 2001-11-21 | 2003-06-10 | Metatomix, Inc. | Methods and apparatus for statistical data analysis |
| US7346598B2 (en) | 2002-06-28 | 2008-03-18 | Microsoft Corporation | Schemaless dataflow within an XML storage solution |
| US7478100B2 (en) | 2003-09-05 | 2009-01-13 | Oracle International Corporation | Method and mechanism for efficient storage and query of XML documents based on paths |
| US7698261B1 (en) * | 2007-03-30 | 2010-04-13 | A9.Com, Inc. | Dynamic selection and ordering of search categories based on relevancy information |
| US8290923B2 (en) | 2008-09-05 | 2012-10-16 | Yahoo! Inc. | Performing large scale structured search allowing partial schema changes without system downtime |
| US8458191B2 (en) | 2010-03-15 | 2013-06-04 | International Business Machines Corporation | Method and system to store RDF data in a relational store |
| US8510306B2 (en) | 2011-05-30 | 2013-08-13 | International Business Machines Corporation | Faceted search with relationships between categories |
| US8862588B1 (en) | 2011-11-30 | 2014-10-14 | Google Inc. | Generating an empirically-determined schema for a schemaless database |
| CA2860322C (en) | 2011-12-23 | 2017-06-27 | Amiato, Inc. | Scalable analysis platform for semi-structured data |
| US9053117B2 (en) | 2012-04-11 | 2015-06-09 | 4Clicks Solutions, LLC | Storing application data with a unique ID |
| US8918434B2 (en) | 2012-04-24 | 2014-12-23 | International Business Machines Corporation | Optimizing sparse schema-less data in relational stores |
| US20140214897A1 (en) | 2013-01-31 | 2014-07-31 | Yuankai Zhu | SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS |
| US8983930B2 (en) | 2013-03-11 | 2015-03-17 | Wal-Mart Stores, Inc. | Facet group ranking for search results |
| US20150046443A1 (en) | 2013-08-11 | 2015-02-12 | International Business Machines Corporation | Document-based search with facet information |
| US9471711B2 (en) | 2013-09-23 | 2016-10-18 | Teradata Us, Inc. | Schema-less access to stored data |
| US10262068B2 (en) * | 2015-08-31 | 2019-04-16 | Walmart Apollo, Llc | System, method, and non-transitory computer-readable storage media for displaying an optimal arrangement of facets and facet values for a search query on a webpage |
-
2015
- 2015-11-19 US US14/946,173 patent/US10353966B2/en active Active
-
2016
- 2016-11-17 WO PCT/US2016/062566 patent/WO2017087694A1/en not_active Ceased
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170140067A1 (en) * | 2015-11-12 | 2017-05-18 | Sick Ag | Method Having a Search Program and a Search Box |
| US12216789B2 (en) * | 2017-02-24 | 2025-02-04 | Hyland Uk Operations Limited | Permissions-constrained dynamic faceting of search results in a content management system |
| US20230169199A1 (en) * | 2017-02-24 | 2023-06-01 | Hyland Uk Operations Limited | Permissions-constrained dynamic faceting of search results in a content management system |
| US10657565B2 (en) * | 2017-05-04 | 2020-05-19 | Walmart Apollo, Llc | Systems and methods for updating website modules |
| US20180322540A1 (en) * | 2017-05-04 | 2018-11-08 | Wal-Mart Stores, Inc. | Systems and methods for updating website modules |
| CN110020063A (en) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | Method for vertical search and system |
| US20200293566A1 (en) * | 2018-07-18 | 2020-09-17 | International Business Machines Corporation | Dictionary Editing System Integrated With Text Mining |
| JP2021530778A (en) * | 2018-07-18 | 2021-11-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Dictionary editing system integrated with text mining |
| JP7239671B2 (en) | 2018-07-18 | 2023-03-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Dictionary editing system integrated with text mining |
| US11687579B2 (en) * | 2018-07-18 | 2023-06-27 | International Business Machines Corporation | Dictionary editing system integrated with text mining |
| US11030652B2 (en) * | 2019-01-22 | 2021-06-08 | Walmart Apollo, Llc | Systems and methods for facet discovery |
| US20220207087A1 (en) * | 2020-12-26 | 2022-06-30 | International Business Machines Corporation | Optimistic facet set selection for dynamic faceted search |
| US11940996B2 (en) | 2020-12-26 | 2024-03-26 | International Business Machines Corporation | Unsupervised discriminative facet generation for dynamic faceted search |
| US12282513B2 (en) * | 2020-12-26 | 2025-04-22 | International Business Machines Corporation | Optimistic facet set selection for dynamic faceted search |
| WO2025111700A1 (en) * | 2023-11-28 | 2025-06-05 | GroupBy Inc. | Fitment based product search and filtering |
Also Published As
| Publication number | Publication date |
|---|---|
| US10353966B2 (en) | 2019-07-16 |
| WO2017087694A1 (en) | 2017-05-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10353966B2 (en) | Dynamic attributes for searching | |
| US12346380B2 (en) | Method and system for providing context based query suggestions | |
| US9646108B2 (en) | Systems and methods for performing geo-search and retrieval of electronic documents using a big index | |
| US10387435B2 (en) | Computer application query suggestions | |
| US10984056B2 (en) | Systems and methods for evaluating search query terms for improving search results | |
| US11226960B2 (en) | Natural-language database interface with automated keyword mapping and join-path inferences | |
| US10346457B2 (en) | Platform support clusters from computer application metadata | |
| US10565201B2 (en) | Query processing management in a database management system | |
| US20120072462A1 (en) | Processing of categorized product information | |
| US10497042B2 (en) | Search ranking | |
| US11874882B2 (en) | Extracting key phrase candidates from documents and producing topical authority ranking | |
| US9785712B1 (en) | Multi-index search engines | |
| JP7483320B2 (en) | Automated Search Dictionary and User Interface | |
| US12141151B2 (en) | Computerized smart inventory search methods and systems using classification and tagging | |
| WO2018022333A1 (en) | Cross-platform computer application query categories | |
| US20220350851A1 (en) | Automated user language detection for content selection | |
| US10691684B2 (en) | Structured search queries | |
| US11080249B2 (en) | Establishing industry ground truth | |
| KR20100101464A (en) | Searching apparatus and method using tag information | |
| Nakashole | An Operator for Entity Extraction in MapReduce |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: BLOOMREACH, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGARWAL, NAVIN;JAIN, MOHIT;AGGARWAL, AMIT;AND OTHERS;SIGNING DATES FROM 20151113 TO 20151117;REEL/FRAME:037091/0622 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: ORIX GROWTH CAPITAL, LLC, TEXAS Free format text: SECURITY INTEREST;ASSIGNOR:BLOOMREACH, INC.;REEL/FRAME:051546/0192 Effective date: 20200115 |
|
| AS | Assignment |
Owner name: COMERICA BANK, MICHIGAN Free format text: SECURITY INTEREST;ASSIGNOR:BLOOMREACH, INC.;REEL/FRAME:054395/0309 Effective date: 20200115 |
|
| AS | Assignment |
Owner name: BLOOMREACH, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ORIX GROWTH CAPITAL, LLC;REEL/FRAME:059189/0696 Effective date: 20220307 |
|
| AS | Assignment |
Owner name: BLOOMREACH, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:COMERICA BANK;REEL/FRAME:060689/0715 Effective date: 20220729 |
|
| AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: SECURITY INTEREST;ASSIGNOR:BLOOMREACH, INC.;REEL/FRAME:060997/0569 Effective date: 20220906 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |