US20140032517A1 - System and methods to configure a profile to rank search results - Google Patents

System and methods to configure a profile to rank search results Download PDF

Info

Publication number
US20140032517A1
US20140032517A1 US13/854,801 US201313854801A US2014032517A1 US 20140032517 A1 US20140032517 A1 US 20140032517A1 US 201313854801 A US201313854801 A US 201313854801A US 2014032517 A1 US2014032517 A1 US 2014032517A1
Authority
US
United States
Prior art keywords
profile
behavior information
component
components
search results
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.)
Abandoned
Application number
US13/854,801
Inventor
Richard D. Henderson
Anand Lakshminath
Davide Libenzi
Jagadish Nallapaneni
Pradeep Sankaranthi
Hal Schectman
Guanglei Song
Prasad Sriram
Nicholas Whyte
Thomas Pan
Carson Hoffacker
Swati Agarwal
Amit Basu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PayPal Inc
Original Assignee
eBay Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by eBay Inc filed Critical eBay Inc
Priority to US13/854,801 priority Critical patent/US20140032517A1/en
Publication of US20140032517A1 publication Critical patent/US20140032517A1/en
Assigned to EBAY INC. reassignment EBAY INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SONG, GUANGLEI, HENDERSON, RICHARD D, SCHECTMAN, HAL, AGARWAL, SWATI, LAKSHMINATH, ANAND, NALLAPANENI, JAGADISH, PAN, THOMAS, SRIRAM, PRASAD, HOFFACKER, CARSON, WHYTE, NICHOLAS, LIBENZI, DAVIDE, SANKARANTHI, PRADEEP, BASU, AMIT
Assigned to PAYPAL, INC. reassignment PAYPAL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EBAY INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • G06F17/3053
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • G06F16/337Profile generation, learning or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Definitions

  • the present application relates generally to the technical field of processing and, in one specific example, to configure a profile to rank search results.
  • a user may generate a profile to rank search results generated from a search query.
  • a separate new profile may be generated with the components changed.
  • the new profile may then be used to rank the search results generated from the search query.
  • FIG. 1 is a network diagram depicting a client-server system, where various embodiments embodiment may be implemented;
  • FIG. 2 is a block diagram of a profile configuration system, according to various embodiments.
  • FIG. 3 is a flowchart of a method to update a profile and rank search results using the updated profile, according to various embodiments
  • FIG. 4 is a block diagram of a profile and additional behavior information being used to update the profile, according to various embodiments
  • FIG. 5 is a block diagram of an updated profile; according to various embodiments.
  • FIG. 6 is a diagram depicting a component of a profile, according to various embodiments.
  • FIG. 7 is a diagram depicting a component of a profile, according to various embodiments.
  • FIG. 8 is a diagram depicting a component of a profile, according to various embodiments.
  • FIG. 9 is a diagram depicting a representation of a machine in the example form of a computer system, according to various embodiments.
  • Example methods and systems to configure a profile to rank search results are described.
  • numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
  • a user may generate a profile to rank search results generated from a search query.
  • the profile may be comprised of several components.
  • the user may modify a component of the profile without having to create a new search profile.
  • the user may send information to the system and have the information replace a component of the profile.
  • the user may send information to be added to the profile.
  • the modified profile may then be used to rank the search results.
  • FIG. 1 illustrates a system 10 to build and utilize a search infrastructure, according to an embodiment.
  • the system 10 may include an information storage and retrieval platform 11 that is communicatively coupled over a network (e.g., Internet) (not shown) to a client machine 12 and a client machine 33 .
  • a network e.g., Internet
  • an operation A that describes a first user operating the client machine 12 to interact with an application server 14 to store or update a document 16 in a database 18 ; illustrated in the middle are operations B, C, D, E that describe retrieving and transforming the contents of the database 18 , storing the transformed contents in a database 20 that is time-stamped, retrieving the contents from the database 20 to generate a full-index 22 and a set of mini-indexes 24 which are utilized to generate and continually update the index information 26 in the database 28 to be consumed and served by the query node servers 30 ; and illustrated on the top right is an operation F that describes a second user who operates a client machine 33 to enter a query that is received by one or more query node servers 30 that, in turn, apply the query to the index information 26 to identify and return search results that reference the document 16 .
  • the above operations to continually rebuild the index information 26 are performed in real-time and without interruption to service that is provided to the first and second users who continue to interact with the system 10 .
  • the index information 26 may include an inverted index 32 and document information 34 .
  • An inverted index e.g., inverted index 32
  • the documents 16 e.g., document data, column group data
  • information contained by the documents 16 may be stored in the document information 34 .
  • a “document X” may include the words “apple,” “orange,” and “banana;” a “document Y” may include the words “apple” and “orange; and, a “document Z” may include the word “apple.”
  • An inverted index for the words in documents X, Y, and Z may be generated as follows:
  • the above inverted index may be utilized to identify the word “apple” as being positioned in the first word of documents X, Y, and Z; the word “orange” as being positioned in the second word of the documents X and Y; and the word “banana” as being positioned as the third word of the document X. Accordingly, the above inverted index may be utilized to map a keyword “apple” contained in a query that is received from a client computer to the documents X, Y, and Z that are further referenced in search results that are returned to the client computer. It is appreciated by one skilled in the art that the inverted index 32 corresponds to the underlying database that it describes.
  • Updates to the database 28 may include the addition and deletion of documents 16 in the document information 34 as well as the update of any of the contents contained by the documents 16 in the document information 34 .
  • the index information 26 may be updated in real time to respond to a query in real time with accurate search results that include the most recent document information 34 .
  • the information storage and retrieval platform 11 includes multiple components including the application servers 14 that may execute on one or more application server machines (not shown), the database 18 , a database 20 , an Hadoop distributed file system 23 , the database 28 , the query node servers 30 that operate on query node server machines (not shown), an Hbase/Hadoop Cluster 44 comprised of one or more Hbase/Hadoop machines (not shown) including an Hbase Hadoop Node 49 (e.g, Hbase/Hadoop machine), an index distribution module 52 executing on Hbase/Hadoop machine, search front end servers 58 that executes on search machines (not shown), and search back end servers 60 that execute on search machines (not shown) as being communicatively coupled together.
  • the multiple components may be communicatively coupled with any combination of a wide area network, local area network, wireless network, or any other type of network utilizing various networking technologies.
  • the document 16 may be communicated from the client machine 12 to the application servers 14 and stored in the database 18 (e.g., Oracle database).
  • the document 16 may include multiple elements including elements a, b, c, d, e, and f that may include strings of text, numeric information, scores, or other discrete quantum of information that are positioned in different sections or fields of the document (e.g., item information).
  • event manager modules 36 may identify updates to the database 18 , generate events that correspond to the respective updates, prioritize the events according to the quality of the data in the event and communicate the prioritized events into event queues 38 that are consumed by consumer modules 40 that service the respective event queues 38 .
  • the event manager modules 36 and the consumer modules 40 may utilize three event queues 38 to process and prioritize event types.
  • the update of the “element a” in the document 16 in the database 18 may be a price change to item information describing an item for sale that causes the generation of a corresponding event that is associated with a high priority that, in turn, is communicated into in a first event queue associated with high priority that, in turn, is received by a consumer module 40 .
  • the update of the “element b” in document 16 in the database 18 may be a change to a title of the item that causes the generation of an event that is associated with a medium priority that, in turn, is communicated into a second event queue associated with the medium priority that, in turn, is received by a consumer module 40 .
  • the update of the “element c” in document 16 in the database 18 may be a change to a description of the item that causes the generation of an event that is communicated into a third event queue associated with a low priority that, in turn, is received by a consumer module 40 .
  • the three event queues 38 may be utilized to communicate events in high, medium, and low priorities to facilitate a preference for the update of high priority events (e.g., price) over medium priority events (e.g., title) over low priority events (e.g., description).
  • high priority events e.g., price
  • medium priority events e.g., title
  • low priority events e.g., description
  • the priority for the respective event types may be configured.
  • Other embodiments may include fewer or more event queues 38 .
  • the consumer modules 40 may transform the data in the events and communicate the transformed data via an HBase application programming interface to an HBase master server 42 in an HBase/Hadoop cluster 44 that, in turn, stores the transformed data in one or more tables including an items table 21 in the database 20 (e.g., HBase).
  • the transformed data may be stored according to regions that are managed by region server processes 46 .
  • the database 20 may be embodied as an open source non-relational, distributed database (e.g., HBase) that runs on a Hadoop Distributed Filesystem (HDFS) 23 .
  • HDFS 23 is an open source software framework that supports data-intensive distributed applications, known by those skilled in the art.
  • the Hbase/Hadoop cluster 44 may further includes the HBase master server 42 that is utilized to manage the HBase/HDFS environment, a scheduler module 48 , and an HBase/Hadoop node 49 that includes multiple region server processes 46 and a map-reduce job module 50 .
  • Each region server process 46 may further be associated with a column (not shown) that corresponds to a range of documents (e.g., or items corresponding to item information in the items table 21 ) and may be utilized to manage one or more regions (not shown) that respectively correspond to a range of the documents 16 .
  • the documents 16 may be uniquely identified with document identifiers (e.g., item identifiers) that are numbered from 0 to X where each column and region are dedicated to respective overlapping predetermined ranges of documents (e.g., documents (0-100 and documents (0-50), as described further in this document.
  • the number of region server processes 46 may be in the hundreds but scaling is not limited to any fixed number.
  • HBase is a technology that provides a fault-tolerant way of storing large quantities of sparse data featuring compression, in-memory operation, and a space-efficient probabilistic data structure (e.g., Bloom filters) on a per-column basis as outlined in the original BigTable paper, as is known by those skilled in the art.
  • a table in the database 20 may serve as the input and output for one or more map-reduce jobs that are scheduled by the map-reduce job module 50 .
  • the map-reduce jobs may be embodied as a map jobs and reduce jobs that runs in HDFS.
  • the tables in the database 20 may further be accessed through the Java Application Programming Interface (API) but also through representational state transfer (REST) architecture and other APIs.
  • API Java Application Programming Interface
  • REST representational state transfer
  • the scheduler module 48 may schedule two index generating sub-operations that process in parallel to generate indexes that are subsequently distributed to the query node servers 30 .
  • the sub-operations may execute for the generating of a full-index 22 and the generating of the mini-indexes 24 .
  • the sub-operations may further execute for the distribution of the indexes to the query node servers 30 .
  • the full-index 22 may be a snapshot of the contents of items table 21 in the database 20 and the mini-indexes 24 may respectively correspond to a series of consecutive snapshots where each snapshot captures one or more updates to the items table 21 in the database 20 that occurred within an associated time period of time.
  • the distribution of the full-indexes 22 and the mini-indexes 24 to the query node servers 30 may be over a network utilizing an index distribution module 52 which is based on Bit Torrent, a peer to peer file sharing protocol.
  • the scheduler module 48 may schedule the generation of the full-index 22 twice in a twenty-four hour period and the generation of mini-indexes 24 every five minutes.
  • the scheduler module 48 may generate a full-index 22 that is associated with a start-time by scheduling a map-reduce job module 50 .
  • the map-reduce job module 50 may initiate a map step that divides the job into smaller sub-jobs (e.g., map tasks) and multiple reduce steps that consume the output from the sub jobs and aggregates results to generate the index information 26 .
  • each mini-index 24 may be associated with events that arrive from the event queues 38 during a particular period of time and is associated with one or more full-indexes 22 .
  • Each index 22 , 24 (e.g., full and mini) may include a bill of material (BOM) information which describes the content of the index 22 , 24 including the index information 26 .
  • the full-index 22 may include full-index BOM information 54 and the mini-index 24 may include mini-index BOM information 56 .
  • the index information 26 may include the inverted index 32 and document information 34 , as previously described.
  • each of the query node servers 30 may receive the full-index 22 and the associated mini-indexes 24 .
  • the query node servers 30 may be comprised of a search grid that is arranged in columns of query node servers 30 , as described later in this document. Each column of query node serves 30 and may be utilized to manage a range of the documents 16 (e.g., column), as previously mentioned.
  • the index information 26 may be stored in memory of the query node servers 30 and in the database 28 connected to the query node servers 30 .
  • the index information 26 may be updated with the full-index 22 responsive to its arrival at the query node servers 30 . Further, the index information 26 may be updated with the mini-index 24 responsive to its arrival at the query node servers 30 .
  • the index information 26 is generally updated in sequential order.
  • the index information 26 are generally updated at the query node server 30 in the order in which the full-index 22 and the mini-indexes 24 are generated.
  • the full-index 22 may be associated with full-index BOM information 54
  • the mini-index 24 may be associated with mini-index BOM information 56 that are utilized by the query node server 30 to manage the update of the index information 26 .
  • a map-reduce job module 50 may include sub jobs that execute on the Hbase/Hadoop node 49 to generate inverted indices in the form of region sub-indices (not shown) for part of the region associated with the region server (HBase). The sub jobs may further merge or stitch the multiple region sub-indices together for the region.
  • a second user who operates the client machine 33 may enter a query that may be communicated over a network (e.g., Internet) via front-end servers 58 and back-end servers 60 to be received by the query node servers 30 which may be divided into two layers.
  • the two layers may include an aggregation layer and a query execution layer.
  • the aggregation layer may include a query node server 30 that includes a query engine 62 (e.g., query module) that receives the query that, in turn, communicates the query to multiple query engines 62 that respectively execute in the execution layer in multiple query node servers 30 that correspond to the columns.
  • a query engine 62 e.g., query module
  • the query engines 62 in the query execution layer may, in turn, respectively apply the same query, in parallel, against respective the index information 26 that were generated for a range of document identifiers (e.g., column) to identify search results (e.g., document 16 ) in parallel.
  • the query engines 62 at each query node servers 30 in the query execution layer, may communicate their respective partial search results to the query engine 62 in the aggregation layer which aggregates the multiple sets of partial search results to form a search result for the entire index information 26 and to communicate the search result over the network to the second user.
  • FIG. 2 is a block diagram of a profile configuration system 200 , according to various embodiments.
  • the system 200 may be implemented as a hardware or as software executed by hardware (e.g., by one or more processors) comprises a generator module 205 , a receiver module 210 , a modification module 215 , a verification module 220 , a search engine module 225 , and a transformer module 230 .
  • the generator module 205 may be configured to generate a profile that includes behavior information organized as a plurality of components.
  • the behavior information may be used to rank search results generated from a search query.
  • the behavior information describes of a plurality of factors and each factor may influence the ranking of search results. When a description of a factor in the behavior information is changed, the ranking of search results may also change.
  • the behavior information is organized as a plurality of components.
  • the plurality of components may comprise the profile, at least one sub-profile, a blender, and at least one key where each key is paired with a value.
  • the components of the profile may be ordered according to a hierarchy.
  • the hierarchy may order the components according to various schemes, such as location of implementation, type, and the like.
  • the behavior information may be transferred from a component within the profile. Alternatively, the behavior information may be transferred from a component included in a separate profile.
  • a lower ordered component may inherit behavior information from a higher ordered component.
  • a higher ordered component may not inherit behavior information from a lower ordered component.
  • the hierarchy may order profiles as being higher than sub-profiles. This ordering indicates that information from a sub-profile may be replaced by information from a profile. This ordering also indicates that information from the sub-profile may not replace information in the profile.
  • the hierarchy may rank a country location as being higher than a region location.
  • This ordering indicates that information from a component being implemented in the United States may be used to replace information in a component being implemented in California.
  • access to the profile may be limited to authorized users.
  • a user may be authorized based on a user credential, such as identification, password, and the like. As such, a non-authorized user may not transfer information to the profile.
  • the ranking of the search results may change.
  • the profile may be generated based on a template.
  • the template may include a set of rules and comprise a plurality of components.
  • the set of rules for the template may indicate a maximum number of components for the template.
  • the set of rules may order the components in the template according to the hierarchy. The ordering of each component in the template may determine whether or not behavior information is transferred from one component to another component.
  • the behavior information may comprise of various types. For instance, the behavior information may be classified as “category,” “site,” and the like.
  • the type of behavior information may indicate the type of search results the behavior information may influence.
  • the set of rules may also indicate types of behavior information for which the template may inherit from. As an example, the set of rules may indicate that the template may inherit behavior information classified as “category.” In various embodiments, if a profile is generated based on the template, the profile adheres to the set of rules for the template.
  • the receiver module 210 may be configured to receive additional behavior information from a user.
  • the behavior information received from the user may comprise of various types. For instance, the behavior information may be classified as “category,” “site,” and the like.
  • the additional behavior information may be organized as a component. Alternatively, the additional behavior information may be organized as a plurality of components. In various embodiments, the additional behavior information received from the user may be a second profile organized as a plurality of components.
  • the modification module 215 may be configured to update at least one component of the profile using the additional behavior information received from the user.
  • the additional behavior information may be organized as a component or as a plurality of components.
  • the additional behavior information may replace the behavior information from one component in the profile.
  • the additional behavior information may replace the behavior information from two or more components in the profile.
  • the modification module 215 may add the additional behavior information to the profile.
  • the additional behavior information may be added as a component or as a plurality of components to the profile.
  • the additional behavior information may be added to the behavior information from one or more components in the profile.
  • the verification module 220 may be configured to determine that the profile may be updated using the additional behavior information.
  • the components of the profile may be ordered according to a hierarchy.
  • the component of the additional behavior information may also be ordered according to the same hierarchy.
  • the rank of a component in the hierarchy may indicate an order of inheritance for the component.
  • the order of inheritance may determine whether or not behavior information is transferred from one component to another component.
  • the verification module 220 may determine whether the component of the additional behavior information has a higher order than a component from the profile.
  • the verification module 220 may determine that the component of the additional behavior information has a higher order than the component from the profile and therefore the component from the profile may be updated using the additional behavior information.
  • the verification module 220 may determine that the component of the additional behavior information has a lower order than the component from the profile and therefore the profile may not be updated using the additional behavior information.
  • the receiver module 210 may receive additional behavior information organized as a sub-profile from the user. The verification module may determine that the sub-profile is ordered higher than a component from the profile and therefore allow the additional behavior information to replace the information in the component from the profile.
  • information may be transferred between components of the same type.
  • the verification module 220 may determine that the component of the additional behavior information is of the same type as the component from the profile and therefore the profile may be updated using the additional behavior information.
  • the verification module 220 is further configured to determine that the user is authorized to update the profile using the additional behavior information. The determination may be based on the user's credentials, such as an identification of the user, an account password, and the like.
  • the modification module 215 may update the profile using the additional behavior information after receiving verification from the verification module 220 .
  • the verification module 220 may determine that the profile is generated based on a template. The verification module 220 may use the set of rules for the template to determine that the profile may be updated using the additional behavior information. In various embodiments, the verification module 220 may determine that the additional behavior information is of a type allowed by the set of rules for the template and therefore allow the profile to be updated. In various embodiments, the verification module 220 may determine that if the additional behavior information is used to update the profile, the updated profile will not violate the maximum number of components as indicated by the set of rules for the template. In various embodiments, the verification module 220 may determine that if the additional behavior information is used to update the profile, it does not violate the maximum number of times the template may inherit behavior information, as indicated by the set of rules for the template.
  • the search engine module 225 may be configured to receive a search query and generate search results based on the search query.
  • the search query may be received from a user at the query node server 24 to search a database 26 as depicted in FIG. 1 .
  • the search engine module 225 may be further configured to rank the search results based on the profile updated by the modification module 215 .
  • the ranking of the search results may be based on the behavior information included in the updated profile. As mentioned previously, the behavior information describes a plurality of factors each of which may influence the ranking of search results.
  • the ranking of search results using the updated profile may be different than the ranking of search results using the profile prior to modification.
  • the plurality of components within each generated profile may be ordered according to a single hierarchy or may be ordered according to a plurality of hierarchies.
  • the plurality of components in a first profile may be ordered according to a first hierarchy.
  • the plurality of components in a second profile may be ordered according to a second hierarchy.
  • the set of rules from one template may be different from the set of rules from another template.
  • a plurality of profiles may be used by the search engine module 225 to influence the ranking of search results.
  • the profile may be represented in a simplified form.
  • a simplified profile may include behavior information expressed in terms of variables.
  • the variables may be a short form representation of a longer expression.
  • expressing the behavior information in terms of variables allows the user send the additional behavior information to the system 200 more easily.
  • the transformer module 230 may be configured to transform the variables in the profile to its longer expression. After transformation, the profile may be a fully expanded profile. The transformed profile may then be used to communicate with the system 200 .
  • the simplified profile may not be implemented by the system 200 until it is transformed by the transformer module 230 .
  • FIG. 3 is a flowchart of a method 300 to update a profile and rank search results using the updated profile, according to various embodiments.
  • the method 300 beings at step 302 when the generator module 205 generates a profile that includes behavior information organized as a plurality of components.
  • the receiver module 210 may receive additional behavior information from a user.
  • the modification module 215 may update at least one component of the plurality of components using the additional behavior information received from the user.
  • the search engine module 225 may receive a search query and may generate search results based on the search query.
  • the search engine module 225 may rank the search results based on the updated profile.
  • FIG. 4 is a block diagram of a profile 402 and additional behavior information being used to update the profile 402 , according to an embodiment.
  • the profile 402 may include a profile component 404 , a sub-profile component A 406 that includes a key value component 408 , and a blender component 410 .
  • both the sub-profile component A 406 and the blender component 410 may be included within the profile component 402 of the profile component 404 .
  • additional behavior organized as a sub-profile component B 412 may be used to update the sub-profile component A 406 of the profile 402 .
  • each component of the profile 402 may include a component order indicating an order of an inheritance.
  • a lower ordered component may inherit behavior information from a higher ordered component.
  • the verification module 220 may determine that the sub-profile component A 406 and sub-profile component B 412 are components of the same type. As mentioned previously, information may be transferred between components of the same type. Therefore the verification module 220 may allow the additional behavior information organized as the sub-profile component B 412 to replace the sub-profile component A 406 .
  • FIG. 5 is a block diagram of a profile 502 , according to an embodiment, that is updated.
  • the profile 502 that is updated may include a profile component 504 that further includes a sub-profile component B 506 and a blender component 508 .
  • the profile 502 that is updated result from updating the profile 402 , as shown on FIG. 4 , with the additional behavior information organized as the sub-profile component B 412 , also shown on FIG. 4 . Accordingly, search results that are ranked using the profile 502 may be different from search results that are ranked using the profile 402 .
  • FIG. 6 is a diagram 600 depicting a component of a profile, according to various embodiments.
  • the component of the profile may comprise ranking expressions used to influence the ranking of search results.
  • FIG. 7 is a diagram 700 depicting a component of a profile, according to various embodiments.
  • the component of the profile may comprise ranking expressions used to influence the ranking of search results.
  • FIG. 8 is a diagram 800 depicting a component of a profile, according to various embodiments.
  • a component of a profile may be a sub-profile component that comprises behavior information used to influence the ranking of search results.
  • Modules may constitute either software modules (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented modules.
  • a hardware-implemented module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
  • one or more computer systems e.g., a standalone, client or server computer system
  • one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
  • a hardware-implemented module may be implemented mechanically or electronically.
  • a hardware-implemented module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations.
  • a hardware-implemented module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
  • the term “hardware-implemented module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein.
  • hardware-implemented modules are temporarily configured (e.g., programmed)
  • each of the hardware-implemented modules need not be configured or instantiated at any one instance in time.
  • the hardware-implemented modules comprise a general-purpose processor configured using software
  • the general-purpose processor may be configured as respective different hardware-implemented modules at different times.
  • Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time.
  • Hardware-implemented modules can provide information to, and receive information from, other hardware-implemented modules. Accordingly, the described hardware-implemented modules may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules have access. For example, one hardware-implemented module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled.
  • a further hardware-implemented module may then, at a later time, access the memory device to retrieve and process the stored output.
  • Hardware-implemented modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
  • processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions.
  • the modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
  • the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
  • the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).)
  • SaaS software as a service
  • Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
  • a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment.
  • a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
  • operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output.
  • Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
  • FPGA field programmable gate array
  • ASIC application-specific integrated circuit
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • both hardware and software architectures require consideration.
  • the choice of whether to implement certain functionality in permanently configured hardware e.g., an ASIC
  • temporarily configured hardware e.g., a combination of software and a programmable processor
  • a combination of permanently and temporarily configured hardware may be a design choice.
  • hardware e.g., machine
  • software architectures that may be deployed, in various example embodiments.
  • FIG. 9 is a block diagram of machine in the example form of a computer system 900 within which instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
  • the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
  • the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • WPA Personal Digital Assistant
  • a cellular telephone a web appliance
  • network router switch or bridge
  • machine any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • the example computer system 900 includes a processor 902 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 904 and a static memory 906 , which communicate with each other via a bus 908 .
  • the computer system 900 may further include a video display unit 910 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
  • the computer system 900 also includes an alphanumeric input device 912 (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation device 914 (e.g., a mouse), a disk drive unit 916 , a signal generation device 918 (e.g., a speaker) and a network interface device 920 .
  • an alphanumeric input device 912 e.g., a keyboard or a touch-sensitive display screen
  • UI user interface
  • disk drive unit 916 e.g., a disk drive unit 916
  • signal generation device 918 e.g., a speaker
  • the disk drive unit 916 includes a machine-readable medium 922 on which is stored one or more sets of instructions and data structures (e.g., software) 924 embodying or utilized by any one or more of the methodologies or functions described herein.
  • the instructions 924 may also reside, completely or at least partially, within the main memory 904 and/or within the processor 902 during execution thereof by the computer system 900 , the main memory 904 and the processor 902 also constituting machine-readable media.
  • machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures.
  • the term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions.
  • the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
  • machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices
  • EPROM Erasable Programmable Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • flash memory devices e.g., electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices
  • magnetic disks such as internal hard disks and removable disks
  • magneto-optical disks e.g., magneto-optical disks
  • the instructions 924 may further be transmitted or received over a communications network 926 using a transmission medium.
  • the instructions 924 may be transmitted using the network interface device 920 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks).
  • POTS Plain Old Telephone
  • the term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
  • inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
  • inventive concept merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.

Abstract

A method and system to configure a profile to rank search results are provided. A profile that includes behavior information organized as a plurality of components is generated. Additional behavior information is received from a user. At least one component of the plurality of components is updated using the additional behavior information received from the user. A search query is received and search results are generated based on the search query. Search results are ranked based on the updated profile.

Description

    PRIORITY
  • This application claims the priority benefit of U.S. Provisional Application No. 61/675,793, filed Jul. 25, 2012, which is incorporated herein by reference in its entirety.
  • A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings that form a part of this document: Copyright eBay, Inc. 2012, All Rights Reserved.
  • TECHNICAL FIELD
  • The present application relates generally to the technical field of processing and, in one specific example, to configure a profile to rank search results.
  • BACKGROUND
  • A user may generate a profile to rank search results generated from a search query. In order to change components of the profile, a separate new profile may be generated with the components changed. The new profile may then be used to rank the search results generated from the search query.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
  • FIG. 1 is a network diagram depicting a client-server system, where various embodiments embodiment may be implemented;
  • FIG. 2 is a block diagram of a profile configuration system, according to various embodiments;
  • FIG. 3 is a flowchart of a method to update a profile and rank search results using the updated profile, according to various embodiments;
  • FIG. 4 is a block diagram of a profile and additional behavior information being used to update the profile, according to various embodiments;
  • FIG. 5 is a block diagram of an updated profile; according to various embodiments;
  • FIG. 6 is a diagram depicting a component of a profile, according to various embodiments;
  • FIG. 7 is a diagram depicting a component of a profile, according to various embodiments;
  • FIG. 8 is a diagram depicting a component of a profile, according to various embodiments; and
  • FIG. 9 is a diagram depicting a representation of a machine in the example form of a computer system, according to various embodiments.
  • DETAILED DESCRIPTION
  • Example methods and systems to configure a profile to rank search results are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present invention may be practiced without these specific details.
  • A user may generate a profile to rank search results generated from a search query. The profile may be comprised of several components. To change the ranking of search results, the user may modify a component of the profile without having to create a new search profile. The user may send information to the system and have the information replace a component of the profile. Alternatively, the user may send information to be added to the profile. The modified profile may then be used to rank the search results.
  • FIG. 1 illustrates a system 10 to build and utilize a search infrastructure, according to an embodiment. The system 10 may include an information storage and retrieval platform 11 that is communicatively coupled over a network (e.g., Internet) (not shown) to a client machine 12 and a client machine 33.
  • Illustrated on the top left is an operation A that describes a first user operating the client machine 12 to interact with an application server 14 to store or update a document 16 in a database 18; illustrated in the middle are operations B, C, D, E that describe retrieving and transforming the contents of the database 18, storing the transformed contents in a database 20 that is time-stamped, retrieving the contents from the database 20 to generate a full-index 22 and a set of mini-indexes 24 which are utilized to generate and continually update the index information 26 in the database 28 to be consumed and served by the query node servers 30; and illustrated on the top right is an operation F that describes a second user who operates a client machine 33 to enter a query that is received by one or more query node servers 30 that, in turn, apply the query to the index information 26 to identify and return search results that reference the document 16. The above operations to continually rebuild the index information 26 are performed in real-time and without interruption to service that is provided to the first and second users who continue to interact with the system 10.
  • The index information 26 may include an inverted index 32 and document information 34. An inverted index (e.g., inverted index 32), as is well known in the art, is an index data structure storing a mapping from content (e.g., content contained by the document 16), such as words or numbers, to its locations in a database file, or in a document (e.g., document 16) or a set of documents. The documents 16 (e.g., document data, column group data) and/or information contained by the documents 16 may be stored in the document information 34.
  • Merely for example a “document X” may include the words “apple,” “orange,” and “banana;” a “document Y” may include the words “apple” and “orange; and, a “document Z” may include the word “apple.” An inverted index for the words in documents X, Y, and Z may be generated as follows:
  • Word Document
    apple X(1), Y(1), Z(1)
    orange X(2), Y(2)
    banana X(3)
  • The above inverted index may be utilized to identify the word “apple” as being positioned in the first word of documents X, Y, and Z; the word “orange” as being positioned in the second word of the documents X and Y; and the word “banana” as being positioned as the third word of the document X. Accordingly, the above inverted index may be utilized to map a keyword “apple” contained in a query that is received from a client computer to the documents X, Y, and Z that are further referenced in search results that are returned to the client computer. It is appreciated by one skilled in the art that the inverted index 32 corresponds to the underlying database that it describes. Accordingly, any update to the underlying database is reflected in a corresponding update to the inverted index 32. Updates to the database 28 may include the addition and deletion of documents 16 in the document information 34 as well as the update of any of the contents contained by the documents 16 in the document information 34. In the present embodiment, the index information 26 may be updated in real time to respond to a query in real time with accurate search results that include the most recent document information 34. To this end, the operations A-F are now further described.
  • The information storage and retrieval platform 11 includes multiple components including the application servers 14 that may execute on one or more application server machines (not shown), the database 18, a database 20, an Hadoop distributed file system 23, the database 28, the query node servers 30 that operate on query node server machines (not shown), an Hbase/Hadoop Cluster 44 comprised of one or more Hbase/Hadoop machines (not shown) including an Hbase Hadoop Node 49 (e.g, Hbase/Hadoop machine), an index distribution module 52 executing on Hbase/Hadoop machine, search front end servers 58 that executes on search machines (not shown), and search back end servers 60 that execute on search machines (not shown) as being communicatively coupled together. For example, the multiple components may be communicatively coupled with any combination of a wide area network, local area network, wireless network, or any other type of network utilizing various networking technologies.
  • At operation A, the document 16, or one or more elements of the document 16, may be communicated from the client machine 12 to the application servers 14 and stored in the database 18 (e.g., Oracle database). The document 16 may include multiple elements including elements a, b, c, d, e, and f that may include strings of text, numeric information, scores, or other discrete quantum of information that are positioned in different sections or fields of the document (e.g., item information).
  • At operation B, at the application servers 14, event manager modules 36 may identify updates to the database 18, generate events that correspond to the respective updates, prioritize the events according to the quality of the data in the event and communicate the prioritized events into event queues 38 that are consumed by consumer modules 40 that service the respective event queues 38. According to an embodiment, the event manager modules 36 and the consumer modules 40 may utilize three event queues 38 to process and prioritize event types. For example, the update of the “element a” in the document 16 in the database 18 may be a price change to item information describing an item for sale that causes the generation of a corresponding event that is associated with a high priority that, in turn, is communicated into in a first event queue associated with high priority that, in turn, is received by a consumer module 40. Similarly, the update of the “element b” in document 16 in the database 18 may be a change to a title of the item that causes the generation of an event that is associated with a medium priority that, in turn, is communicated into a second event queue associated with the medium priority that, in turn, is received by a consumer module 40. Finally, the update of the “element c” in document 16 in the database 18 may be a change to a description of the item that causes the generation of an event that is communicated into a third event queue associated with a low priority that, in turn, is received by a consumer module 40. Accordingly, the three event queues 38 may be utilized to communicate events in high, medium, and low priorities to facilitate a preference for the update of high priority events (e.g., price) over medium priority events (e.g., title) over low priority events (e.g., description). In some embodiments the priority for the respective event types may be configured. Other embodiments may include fewer or more event queues 38.
  • At operation C, the consumer modules 40 may transform the data in the events and communicate the transformed data via an HBase application programming interface to an HBase master server 42 in an HBase/Hadoop cluster 44 that, in turn, stores the transformed data in one or more tables including an items table 21 in the database 20 (e.g., HBase). The transformed data may be stored according to regions that are managed by region server processes 46. According to an embodiment, the database 20 may be embodied as an open source non-relational, distributed database (e.g., HBase) that runs on a Hadoop Distributed Filesystem (HDFS) 23. HDFS 23 is an open source software framework that supports data-intensive distributed applications, known by those skilled in the art. The Hbase/Hadoop cluster 44 may further includes the HBase master server 42 that is utilized to manage the HBase/HDFS environment, a scheduler module 48, and an HBase/Hadoop node 49 that includes multiple region server processes 46 and a map-reduce job module 50. Each region server process 46 may further be associated with a column (not shown) that corresponds to a range of documents (e.g., or items corresponding to item information in the items table 21) and may be utilized to manage one or more regions (not shown) that respectively correspond to a range of the documents 16. For example, the documents 16 may be uniquely identified with document identifiers (e.g., item identifiers) that are numbered from 0 to X where each column and region are dedicated to respective overlapping predetermined ranges of documents (e.g., documents (0-100 and documents (0-50), as described further in this document. According to one embodiment, the number of region server processes 46 may be in the hundreds but scaling is not limited to any fixed number. HBase is a technology that provides a fault-tolerant way of storing large quantities of sparse data featuring compression, in-memory operation, and a space-efficient probabilistic data structure (e.g., Bloom filters) on a per-column basis as outlined in the original BigTable paper, as is known by those skilled in the art. A table in the database 20 (e.g., HBase) may serve as the input and output for one or more map-reduce jobs that are scheduled by the map-reduce job module 50. The map-reduce jobs may be embodied as a map jobs and reduce jobs that runs in HDFS. The tables in the database 20 may further be accessed through the Java Application Programming Interface (API) but also through representational state transfer (REST) architecture and other APIs.
  • At operation D, the scheduler module 48, executing in the HBase/Hadoop cluster 44, may schedule two index generating sub-operations that process in parallel to generate indexes that are subsequently distributed to the query node servers 30. The sub-operations may execute for the generating of a full-index 22 and the generating of the mini-indexes 24. The sub-operations may further execute for the distribution of the indexes to the query node servers 30. The full-index 22 may be a snapshot of the contents of items table 21 in the database 20 and the mini-indexes 24 may respectively correspond to a series of consecutive snapshots where each snapshot captures one or more updates to the items table 21 in the database 20 that occurred within an associated time period of time. The distribution of the full-indexes 22 and the mini-indexes 24 to the query node servers 30 may be over a network utilizing an index distribution module 52 which is based on Bit Torrent, a peer to peer file sharing protocol. In one embodiment, the scheduler module 48 may schedule the generation of the full-index 22 twice in a twenty-four hour period and the generation of mini-indexes 24 every five minutes. The scheduler module 48 may generate a full-index 22 that is associated with a start-time by scheduling a map-reduce job module 50. The map-reduce job module 50 may initiate a map step that divides the job into smaller sub-jobs (e.g., map tasks) and multiple reduce steps that consume the output from the sub jobs and aggregates results to generate the index information 26. Similarly, the scheduler module 48 may generate a mini-index 24 by scheduling a map-reduce job module 50 for execution on the Hbase/Hadoop Node 49 may include a map step but not, according to one embodiment, a reduce step. Accordingly, each mini-index 24 may be associated with events that arrive from the event queues 38 during a particular period of time and is associated with one or more full-indexes 22. Each index 22, 24 (e.g., full and mini) may include a bill of material (BOM) information which describes the content of the index 22, 24 including the index information 26. The full-index 22 may include full-index BOM information 54 and the mini-index 24 may include mini-index BOM information 56. The index information 26 may include the inverted index 32 and document information 34, as previously described.
  • At operation E, each of the query node servers 30 may receive the full-index 22 and the associated mini-indexes 24. The query node servers 30 may be comprised of a search grid that is arranged in columns of query node servers 30, as described later in this document. Each column of query node serves 30 and may be utilized to manage a range of the documents 16 (e.g., column), as previously mentioned. The index information 26 may be stored in memory of the query node servers 30 and in the database 28 connected to the query node servers 30. The index information 26 may be updated with the full-index 22 responsive to its arrival at the query node servers 30. Further, the index information 26 may be updated with the mini-index 24 responsive to its arrival at the query node servers 30. The index information 26 is generally updated in sequential order. For example, the index information 26 are generally updated at the query node server 30 in the order in which the full-index 22 and the mini-indexes 24 are generated. To this end, the full-index 22 may be associated with full-index BOM information 54 the mini-index 24 may be associated with mini-index BOM information 56 that are utilized by the query node server 30 to manage the update of the index information 26. In one embodiment a map-reduce job module 50 may include sub jobs that execute on the Hbase/Hadoop node 49 to generate inverted indices in the form of region sub-indices (not shown) for part of the region associated with the region server (HBase). The sub jobs may further merge or stitch the multiple region sub-indices together for the region.
  • At operation F, a second user who operates the client machine 33 may enter a query that may be communicated over a network (e.g., Internet) via front-end servers 58 and back-end servers 60 to be received by the query node servers 30 which may be divided into two layers. The two layers may include an aggregation layer and a query execution layer. The aggregation layer may include a query node server 30 that includes a query engine 62 (e.g., query module) that receives the query that, in turn, communicates the query to multiple query engines 62 that respectively execute in the execution layer in multiple query node servers 30 that correspond to the columns. The query engines 62 in the query execution layer may, in turn, respectively apply the same query, in parallel, against respective the index information 26 that were generated for a range of document identifiers (e.g., column) to identify search results (e.g., document 16) in parallel. Finally, the query engines 62, at each query node servers 30 in the query execution layer, may communicate their respective partial search results to the query engine 62 in the aggregation layer which aggregates the multiple sets of partial search results to form a search result for the entire index information 26 and to communicate the search result over the network to the second user.
  • FIG. 2 is a block diagram of a profile configuration system 200, according to various embodiments. The system 200 may be implemented as a hardware or as software executed by hardware (e.g., by one or more processors) comprises a generator module 205, a receiver module 210, a modification module 215, a verification module 220, a search engine module 225, and a transformer module 230.
  • In various embodiments, the generator module 205 may be configured to generate a profile that includes behavior information organized as a plurality of components. The behavior information may be used to rank search results generated from a search query. In various embodiments, the behavior information describes of a plurality of factors and each factor may influence the ranking of search results. When a description of a factor in the behavior information is changed, the ranking of search results may also change. In various embodiments, the behavior information is organized as a plurality of components. The plurality of components may comprise the profile, at least one sub-profile, a blender, and at least one key where each key is paired with a value. In various embodiments, the components of the profile may be ordered according to a hierarchy. The hierarchy may order the components according to various schemes, such as location of implementation, type, and the like. In various embodiments, the behavior information may be transferred from a component within the profile. Alternatively, the behavior information may be transferred from a component included in a separate profile. In various embodiments, a lower ordered component may inherit behavior information from a higher ordered component. Alternatively, a higher ordered component may not inherit behavior information from a lower ordered component. In an example embodiment, the hierarchy may order profiles as being higher than sub-profiles. This ordering indicates that information from a sub-profile may be replaced by information from a profile. This ordering also indicates that information from the sub-profile may not replace information in the profile. In another example embodiment, the hierarchy may rank a country location as being higher than a region location. This ordering indicates that information from a component being implemented in the United States may be used to replace information in a component being implemented in California. In various embodiments, access to the profile may be limited to authorized users. A user may be authorized based on a user credential, such as identification, password, and the like. As such, a non-authorized user may not transfer information to the profile. In various embodiments, once behavior information in a component is modified, the ranking of the search results may change.
  • In various embodiments, the profile may be generated based on a template. The template may include a set of rules and comprise a plurality of components. In various embodiments, the set of rules for the template may indicate a maximum number of components for the template. In various embodiments, the set of rules may order the components in the template according to the hierarchy. The ordering of each component in the template may determine whether or not behavior information is transferred from one component to another component. In various embodiments, the behavior information may comprise of various types. For instance, the behavior information may be classified as “category,” “site,” and the like. The type of behavior information may indicate the type of search results the behavior information may influence. In various embodiments, the set of rules may also indicate types of behavior information for which the template may inherit from. As an example, the set of rules may indicate that the template may inherit behavior information classified as “category.” In various embodiments, if a profile is generated based on the template, the profile adheres to the set of rules for the template.
  • In various embodiments, the receiver module 210 may be configured to receive additional behavior information from a user. In various embodiments, the behavior information received from the user may comprise of various types. For instance, the behavior information may be classified as “category,” “site,” and the like. In various embodiments, the additional behavior information may be organized as a component. Alternatively, the additional behavior information may be organized as a plurality of components. In various embodiments, the additional behavior information received from the user may be a second profile organized as a plurality of components.
  • In various embodiments, the modification module 215 may be configured to update at least one component of the profile using the additional behavior information received from the user. As mentioned previously, the additional behavior information may be organized as a component or as a plurality of components. In various embodiments, the additional behavior information may replace the behavior information from one component in the profile. Alternatively, the additional behavior information may replace the behavior information from two or more components in the profile. In various embodiments, the modification module 215 may add the additional behavior information to the profile. The additional behavior information may be added as a component or as a plurality of components to the profile. Alternatively, the additional behavior information may be added to the behavior information from one or more components in the profile.
  • In various embodiments, the verification module 220 may be configured to determine that the profile may be updated using the additional behavior information. As mentioned previously, the components of the profile may be ordered according to a hierarchy. The component of the additional behavior information may also be ordered according to the same hierarchy. The rank of a component in the hierarchy may indicate an order of inheritance for the component. The order of inheritance may determine whether or not behavior information is transferred from one component to another component. In various embodiments, the verification module 220 may determine whether the component of the additional behavior information has a higher order than a component from the profile. The verification module 220 may determine that the component of the additional behavior information has a higher order than the component from the profile and therefore the component from the profile may be updated using the additional behavior information. Alternatively, the verification module 220 may determine that the component of the additional behavior information has a lower order than the component from the profile and therefore the profile may not be updated using the additional behavior information. As an example, the receiver module 210 may receive additional behavior information organized as a sub-profile from the user. The verification module may determine that the sub-profile is ordered higher than a component from the profile and therefore allow the additional behavior information to replace the information in the component from the profile.
  • In various embodiments, information may be transferred between components of the same type. As such, the verification module 220 may determine that the component of the additional behavior information is of the same type as the component from the profile and therefore the profile may be updated using the additional behavior information. In various embodiments, the verification module 220 is further configured to determine that the user is authorized to update the profile using the additional behavior information. The determination may be based on the user's credentials, such as an identification of the user, an account password, and the like. In various embodiments, the modification module 215 may update the profile using the additional behavior information after receiving verification from the verification module 220.
  • In various embodiments, the verification module 220 may determine that the profile is generated based on a template. The verification module 220 may use the set of rules for the template to determine that the profile may be updated using the additional behavior information. In various embodiments, the verification module 220 may determine that the additional behavior information is of a type allowed by the set of rules for the template and therefore allow the profile to be updated. In various embodiments, the verification module 220 may determine that if the additional behavior information is used to update the profile, the updated profile will not violate the maximum number of components as indicated by the set of rules for the template. In various embodiments, the verification module 220 may determine that if the additional behavior information is used to update the profile, it does not violate the maximum number of times the template may inherit behavior information, as indicated by the set of rules for the template.
  • In various embodiments, the search engine module 225 may be configured to receive a search query and generate search results based on the search query. In various embodiments, the search query may be received from a user at the query node server 24 to search a database 26 as depicted in FIG. 1. The search engine module 225 may be further configured to rank the search results based on the profile updated by the modification module 215. In various embodiments, the ranking of the search results may be based on the behavior information included in the updated profile. As mentioned previously, the behavior information describes a plurality of factors each of which may influence the ranking of search results. In various embodiments, the ranking of search results using the updated profile may be different than the ranking of search results using the profile prior to modification. In various embodiments, there may be a plurality of generated profiles organized as a plurality of components. The plurality of components within each generated profile may be ordered according to a single hierarchy or may be ordered according to a plurality of hierarchies. In other words, the plurality of components in a first profile may be ordered according to a first hierarchy. And the plurality of components in a second profile may be ordered according to a second hierarchy. Moreover, there may be a plurality of templates each with a set of rules. In various embodiments, the set of rules from one template may be different from the set of rules from another template. In various embodiments, a plurality of profiles may be used by the search engine module 225 to influence the ranking of search results.
  • In various embodiments, the profile may be represented in a simplified form. A simplified profile may include behavior information expressed in terms of variables. The variables may be a short form representation of a longer expression. In various embodiments, expressing the behavior information in terms of variables allows the user send the additional behavior information to the system 200 more easily. In various embodiments, the transformer module 230 may be configured to transform the variables in the profile to its longer expression. After transformation, the profile may be a fully expanded profile. The transformed profile may then be used to communicate with the system 200. In various embodiments, the simplified profile may not be implemented by the system 200 until it is transformed by the transformer module 230.
  • FIG. 3 is a flowchart of a method 300 to update a profile and rank search results using the updated profile, according to various embodiments. The method 300 beings at step 302 when the generator module 205 generates a profile that includes behavior information organized as a plurality of components. At step 304 the receiver module 210 may receive additional behavior information from a user. At step 306, the modification module 215 may update at least one component of the plurality of components using the additional behavior information received from the user. At step 308, the search engine module 225 may receive a search query and may generate search results based on the search query. At step 310, the search engine module 225 may rank the search results based on the updated profile.
  • FIG. 4 is a block diagram of a profile 402 and additional behavior information being used to update the profile 402, according to an embodiment. In various embodiments, the profile 402 may include a profile component 404, a sub-profile component A 406 that includes a key value component 408, and a blender component 410. Moreover, both the sub-profile component A 406 and the blender component 410 may be included within the profile component 402 of the profile component 404. In various embodiments, additional behavior organized as a sub-profile component B 412 may be used to update the sub-profile component A 406 of the profile 402. In various embodiments, each component of the profile 402 may include a component order indicating an order of an inheritance. As mentioned previously, a lower ordered component may inherit behavior information from a higher ordered component. Further, the verification module 220 may determine that the sub-profile component A 406 and sub-profile component B 412 are components of the same type. As mentioned previously, information may be transferred between components of the same type. Therefore the verification module 220 may allow the additional behavior information organized as the sub-profile component B 412 to replace the sub-profile component A 406.
  • FIG. 5 is a block diagram of a profile 502, according to an embodiment, that is updated. The profile 502 that is updated may include a profile component 504 that further includes a sub-profile component B 506 and a blender component 508. In various embodiments, the profile 502 that is updated result from updating the profile 402, as shown on FIG. 4, with the additional behavior information organized as the sub-profile component B 412, also shown on FIG. 4. Accordingly, search results that are ranked using the profile 502 may be different from search results that are ranked using the profile 402.
  • FIG. 6 is a diagram 600 depicting a component of a profile, according to various embodiments. In various embodiments, the component of the profile may comprise ranking expressions used to influence the ranking of search results.
  • FIG. 7 is a diagram 700 depicting a component of a profile, according to various embodiments. In various embodiments, the component of the profile may comprise ranking expressions used to influence the ranking of search results.
  • FIG. 8 is a diagram 800 depicting a component of a profile, according to various embodiments. In various embodiments, a component of a profile may be a sub-profile component that comprises behavior information used to influence the ranking of search results.
  • Modules, Components and Logic
  • Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented modules. A hardware-implemented module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
  • In various embodiments, a hardware-implemented module may be implemented mechanically or electronically. For example, a hardware-implemented module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware-implemented module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
  • Accordingly, the term “hardware-implemented module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), each of the hardware-implemented modules need not be configured or instantiated at any one instance in time. For example, where the hardware-implemented modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware-implemented modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time.
  • Hardware-implemented modules can provide information to, and receive information from, other hardware-implemented modules. Accordingly, the described hardware-implemented modules may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules have access. For example, one hardware-implemented module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware-implemented module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware-implemented modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
  • The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
  • Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
  • The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).)
  • Electronic Apparatus and System
  • Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
  • A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
  • In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
  • The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that that both hardware and software architectures require consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
  • Example Machine Architecture and Machine-Readable Medium
  • FIG. 9 is a block diagram of machine in the example form of a computer system 900 within which instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
  • The example computer system 900 includes a processor 902 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 904 and a static memory 906, which communicate with each other via a bus 908. The computer system 900 may further include a video display unit 910 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 900 also includes an alphanumeric input device 912 (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation device 914 (e.g., a mouse), a disk drive unit 916, a signal generation device 918 (e.g., a speaker) and a network interface device 920.
  • Machine-Readable Medium
  • The disk drive unit 916 includes a machine-readable medium 922 on which is stored one or more sets of instructions and data structures (e.g., software) 924 embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 924 may also reside, completely or at least partially, within the main memory 904 and/or within the processor 902 during execution thereof by the computer system 900, the main memory 904 and the processor 902 also constituting machine-readable media.
  • While the machine-readable medium 922 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • Transmission Medium
  • The instructions 924 may further be transmitted or received over a communications network 926 using a transmission medium. The instructions 924 may be transmitted using the network interface device 920 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
  • Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
  • Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.

Claims (19)

What is claimed is:
1. A system comprising:
a generator module configured to generate a profile that includes behavior information organized as a plurality of components;
a receiver module configured to receive additional behavior information from a user;
a modification module configured to update at least one component of the plurality of components using the additional behavior information received from the user; and
a search engine module configured to receive a search query, generate search results based on the search query, and rank the search results based on the updated profile.
2. The system of claim 1, further comprising:
a verification module configured to determine that the profile may be updated using the additional behavior information.
3. The system of claim 2, wherein the verification module is further configured to determine that the user is authorized to update the profile using the additional behavior information.
4. The system of claim 1, wherein the modification module is configured to replace at last one component of the behavior information in the profile with the additional behavior information.
5. The system of claim 1, wherein the modification module is configured to add the additional behavior information to at least component in the profile.
6. The system of claim 1, wherein the plurality of components are ordered according to a hierarchy.
7. The system of claim 1, wherein the behavior information includes a plurality of keys and each name corresponds to a value.
8. The system of claim 1, wherein the profile is generated based on a template.
9. The system of claim 1, further comprising:
a transformer module configured to transform the profile into a fully expanded profile.
10. A method comprising:
generating a profile that includes behavior information organized as a plurality of components;
receiving additional behavior information from a user;
updating at least one component of the plurality of components using the additional behavior information received from the user;
receiving a search query and generating search results based on the search query; and
ranking the search results based on the updated profile.
11. The method of claim 10, further comprising:
determining that the profile may be updated using the additional behavior information.
12. The method of claim 11, further comprising:
determining that the user is authorized to update the profile using the additional behavior information.
13. The method of claim 10, wherein updating at least one component of the plurality of components includes replacing at last one component of the behavior information in the profile with the additional behavior information.
14. The method of claim 10, wherein updating at least one component of the plurality of components includes adding the additional behavior information to at least one component in the profile.
15. The method of claim 10, wherein the plurality of components are ordered according to a hierarchy.
16. The method of claim 10, wherein the behavior information includes a plurality of keys and each name corresponds to a value.
17. The method of claim 10, wherein the profile is generated based on a template.
18. The method of claim 10, further comprising:
transforming the profile into a fully expanded profile.
19. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
generating a profile that includes behavior information organized as a plurality of components;
receiving additional behavior information from a user;
updating at least one component of the plurality of components using the additional behavior information received from the user;
receiving a search query and generating search results based on the search query; and
ranking the search results based on the updated profile.
US13/854,801 2012-07-25 2013-04-01 System and methods to configure a profile to rank search results Abandoned US20140032517A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/854,801 US20140032517A1 (en) 2012-07-25 2013-04-01 System and methods to configure a profile to rank search results

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261675793P 2012-07-25 2012-07-25
US13/854,801 US20140032517A1 (en) 2012-07-25 2013-04-01 System and methods to configure a profile to rank search results

Publications (1)

Publication Number Publication Date
US20140032517A1 true US20140032517A1 (en) 2014-01-30

Family

ID=49995896

Family Applications (5)

Application Number Title Priority Date Filing Date
US13/711,287 Active 2033-02-21 US9081821B2 (en) 2012-07-25 2012-12-11 Spell check using column cursor
US13/730,536 Active 2034-06-27 US9607049B2 (en) 2012-07-25 2012-12-28 Systems and methods to build and utilize a search infrastructure
US13/730,583 Abandoned US20140032593A1 (en) 2012-07-25 2012-12-28 Systems and methods to process a query with a unified storage interface
US13/854,801 Abandoned US20140032517A1 (en) 2012-07-25 2013-04-01 System and methods to configure a profile to rank search results
US15/470,565 Active US10482113B2 (en) 2012-07-25 2017-03-27 Systems and methods to build and utilize a search infrastructure

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US13/711,287 Active 2033-02-21 US9081821B2 (en) 2012-07-25 2012-12-11 Spell check using column cursor
US13/730,536 Active 2034-06-27 US9607049B2 (en) 2012-07-25 2012-12-28 Systems and methods to build and utilize a search infrastructure
US13/730,583 Abandoned US20140032593A1 (en) 2012-07-25 2012-12-28 Systems and methods to process a query with a unified storage interface

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/470,565 Active US10482113B2 (en) 2012-07-25 2017-03-27 Systems and methods to build and utilize a search infrastructure

Country Status (1)

Country Link
US (5) US9081821B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158768B2 (en) 2012-07-25 2015-10-13 Paypal, Inc. System and methods to configure a query language using an operator dictionary
WO2017037137A1 (en) * 2015-09-01 2017-03-09 upday GmbH & Co. KG Data processing system
US9607049B2 (en) 2012-07-25 2017-03-28 Ebay Inc. Systems and methods to build and utilize a search infrastructure
US9607025B2 (en) * 2012-09-24 2017-03-28 Andrew L. DiRienzo Multi-component profiling systems and methods
FR3056797A1 (en) * 2016-09-29 2018-03-30 Target2Sell METHOD OF ESTABLISHING AN ORDINATED LIST OF OBJECTS AND SYSTEM FOR IMPLEMENTING THE METHOD.
WO2018115506A1 (en) * 2016-12-22 2018-06-28 Qwant Method for local profiling of a user of a terminal and method for searching for private information
FR3061329A1 (en) * 2016-12-22 2018-06-29 Qwant METHOD FOR LOCAL PROFILING OF A USER OF A TERMINAL AND METHOD FOR SEARCHING PRIVATE INFORMATION
US20190102407A1 (en) * 2017-10-03 2019-04-04 Ohio State Innovation Foundation Apparatus and method for interactive analysis of aviation data
US11044258B2 (en) * 2018-08-24 2021-06-22 Kyocera Document Solutions Inc. Decentralized network for secure distribution of digital documents

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5705788B2 (en) * 2012-06-05 2015-04-22 株式会社日立製作所 Assembly model similar structure search system and assembly model similar structure search method
US8924373B2 (en) * 2012-08-09 2014-12-30 International Business Machines Corporation Query plans with parameter markers in place of object identifiers
WO2014086019A1 (en) * 2012-12-06 2014-06-12 Empire Technology Development Llc Decentralizing a hadoop cluster
US9268808B2 (en) 2012-12-31 2016-02-23 Facebook, Inc. Placement policy
US9805078B2 (en) 2012-12-31 2017-10-31 Ebay, Inc. Next generation near real-time indexing
US9372942B1 (en) * 2013-03-15 2016-06-21 Dell Software Inc. System and method for facilitating data visualization via a map-reduce framework
US10073874B1 (en) * 2013-05-28 2018-09-11 Google Llc Updating inverted indices
US9477731B2 (en) * 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US9690671B2 (en) * 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
US9361329B2 (en) * 2013-12-13 2016-06-07 International Business Machines Corporation Managing time series databases
US9715515B2 (en) * 2014-01-31 2017-07-25 Microsoft Technology Licensing, Llc External data access with split index
US20150220510A1 (en) * 2014-01-31 2015-08-06 International Business Machines Corporation Interactive data-driven optimization of effective linguistic choices in communication
US9037967B1 (en) * 2014-02-18 2015-05-19 King Fahd University Of Petroleum And Minerals Arabic spell checking technique
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9838467B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Dynamically instantiating dual-queue systems
US9660930B2 (en) * 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9836358B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Ephemeral remote data store for dual-queue systems
US20160092532A1 (en) * 2014-09-29 2016-03-31 Facebook, Inc. Load-balancing inbound real-time data updates for a social networking system
US10095683B2 (en) * 2015-04-10 2018-10-09 Facebook, Inc. Contextual speller models on online social networks
US10749766B1 (en) 2015-10-23 2020-08-18 Amazon Technologies, Inc. Archival datastore for aggregated metrics
US11003690B1 (en) * 2015-10-23 2021-05-11 Amazon Technologies, Inc. Aggregator systems for storage of data segments
US10417234B2 (en) * 2016-10-07 2019-09-17 Sap Se Data flow modeling and execution
US10803034B2 (en) * 2016-11-23 2020-10-13 Amazon Technologies, Inc. Global column indexing in a graph database
CN107169138B (en) * 2017-06-13 2020-07-14 电子科技大学 Data distribution method for distributed memory database query engine
US10705943B2 (en) * 2017-09-08 2020-07-07 Devfactory Innovations Fz-Llc Automating identification of test cases for library suggestion models
CN108021636B (en) * 2017-11-27 2021-05-04 武汉大学 Propagation network structure reconstruction method independent of time information
CN108228107A (en) * 2018-01-02 2018-06-29 联想(北京)有限公司 A kind of data transmission method, data transmission device and electronic equipment
US11093446B2 (en) * 2018-10-31 2021-08-17 Western Digital Technologies, Inc. Duplicate request checking for file system interfaces
JP7193721B2 (en) * 2019-01-31 2022-12-21 富士通株式会社 Information processing device and database search program
US11372823B2 (en) * 2019-02-06 2022-06-28 President And Fellows Of Harvard College File management with log-structured merge bush
CN111814003A (en) * 2019-04-12 2020-10-23 伊姆西Ip控股有限责任公司 Method, electronic device and computer program product for building metadata index
US11537554B2 (en) * 2019-07-01 2022-12-27 Elastic Flash Inc. Analysis of streaming data using deltas and snapshots
CN110837585B (en) * 2019-11-07 2022-12-20 中盈优创资讯科技有限公司 Multi-source heterogeneous data association query method and system
US11416180B2 (en) * 2020-11-05 2022-08-16 International Business Machines Corporation Temporary data storage in data node of distributed file system
US20220405263A1 (en) * 2021-06-21 2022-12-22 International Business Machines Corporation Increasing Index Availability in Databases
US20220414171A1 (en) * 2021-06-28 2022-12-29 Flipkart Internet Private Limited System and method for generating a user query based on a target context aware token

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065802A1 (en) * 2000-05-30 2002-05-30 Koki Uchiyama Distributed monitoring system providing knowledge services
US6438579B1 (en) * 1999-07-16 2002-08-20 Agent Arts, Inc. Automated content and collaboration-based system and methods for determining and providing content recommendations
US6701362B1 (en) * 2000-02-23 2004-03-02 Purpleyogi.Com Inc. Method for creating user profiles
US20050071328A1 (en) * 2003-09-30 2005-03-31 Lawrence Stephen R. Personalization of web search
US20050240580A1 (en) * 2003-09-30 2005-10-27 Zamir Oren E Personalization of placed content ordering in search results
US20070130126A1 (en) * 2006-02-17 2007-06-07 Google Inc. User distributed search results
US20070198500A1 (en) * 2006-02-17 2007-08-23 Google Inc. User distributed search results
US20080208844A1 (en) * 2007-02-27 2008-08-28 Jenkins Michael D Entertainment platform with layered advanced search and profiling technology
US20090327314A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Extended user profile
US20090327228A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Balancing the costs of sharing private data with the utility of enhanced personalization of online services
US20100250578A1 (en) * 2009-03-31 2010-09-30 Yahoo! Inc. System and method for conducting a profile based search
US20100312724A1 (en) * 2007-11-02 2010-12-09 Thomas Pinckney Inferring user preferences from an internet based social interactive construct
US20110055241A1 (en) * 2009-09-01 2011-03-03 Lockheed Martin Corporation High precision search system and method
US20120016875A1 (en) * 2010-07-16 2012-01-19 International Business Machines Corporation Personalized data search utilizing social activities
US8214380B1 (en) * 2009-02-09 2012-07-03 Repio, Inc. System and method for managing search results
US20130166494A1 (en) * 2011-12-22 2013-06-27 General Instrument Corporation Hierarchical behavioral profile

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE32773E (en) * 1983-02-22 1988-10-25 Method of creating text using a computer
US5347653A (en) * 1991-06-28 1994-09-13 Digital Equipment Corporation System for reconstructing prior versions of indexes using records indicating changes between successive versions of the indexes
US5576734A (en) * 1993-10-28 1996-11-19 The Mitre Corporation Keyboard emulator system
US6009425A (en) * 1996-08-21 1999-12-28 International Business Machines Corporation System and method for performing record deletions using index scans
US6502233B1 (en) 1998-11-13 2002-12-31 Microsoft Corporation Automated help system for reference information
US6526403B1 (en) * 1999-12-17 2003-02-25 International Business Machines Corporation Method, computer program product, and system for rewriting database queries in a heterogenous environment
GB2398143B (en) 2001-09-04 2005-08-31 Intermation Ltd Database management system
US6999958B2 (en) 2002-06-07 2006-02-14 International Business Machines Corporation Runtime query optimization for dynamically selecting from multiple plans in a query based upon runtime-evaluated performance criterion
US20040199899A1 (en) * 2003-04-04 2004-10-07 Powers Richard Dickert System and method for determining whether a mix of system components is compatible
US20050010606A1 (en) * 2003-07-11 2005-01-13 Martin Kaiser Data organization for database optimization
US7683940B2 (en) * 2003-09-12 2010-03-23 Canon Kabushiki Kaisha Streaming non-continuous video data
US7376642B2 (en) * 2004-03-30 2008-05-20 Microsoft Corporation Integrated full text search system and method
US20050283473A1 (en) * 2004-06-17 2005-12-22 Armand Rousso Apparatus, method and system of artificial intelligence for data searching applications
US8495023B1 (en) * 2004-09-01 2013-07-23 Symantec Operating Corporation Delta catalogs in a backup system
US7647580B2 (en) 2004-09-07 2010-01-12 Microsoft Corporation General programming language support for nullable types
US7367019B2 (en) 2004-09-16 2008-04-29 International Business Machines Corporation Parameter management using compiler directives
US8019752B2 (en) * 2005-11-10 2011-09-13 Endeca Technologies, Inc. System and method for information retrieval from object collections with complex interrelationships
US7925676B2 (en) * 2006-01-27 2011-04-12 Google Inc. Data object visualization using maps
US8051385B1 (en) * 2006-03-29 2011-11-01 Amazon Technologies, Inc. Content selection and aggregated search results presentation on a handheld electronic device
US8271452B2 (en) * 2006-06-12 2012-09-18 Rainstor Limited Method, system, and database archive for enhancing database archiving
US7917499B2 (en) * 2006-06-30 2011-03-29 Microsoft Corporation Updating adaptive, deferred, incremental indexes
US7676524B2 (en) * 2007-01-31 2010-03-09 Microsoft Corporation Hierarchical cursor-based object model
US8364648B1 (en) * 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
JP2009064120A (en) * 2007-09-05 2009-03-26 Hitachi Ltd Search system
US8077983B2 (en) * 2007-10-04 2011-12-13 Zi Corporation Of Canada, Inc. Systems and methods for character correction in communication devices
US20090228528A1 (en) * 2008-03-06 2009-09-10 International Business Machines Corporation Supporting sub-document updates and queries in an inverted index
US20090248401A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation System and Methods For Using Short-Hand Interpretation Dictionaries In Collaboration Environments
US20100269090A1 (en) 2009-04-17 2010-10-21 France Telecom Method of making it possible to simplify the programming of software
US8176069B2 (en) * 2009-06-01 2012-05-08 Aol Inc. Systems and methods for improved web searching
US20110218986A1 (en) * 2010-03-06 2011-09-08 David Joseph O'Hanlon Search engine optimization economic purchasing method
US8380711B2 (en) * 2011-03-10 2013-02-19 International Business Machines Corporation Hierarchical ranking of facial attributes
US8601474B2 (en) 2011-10-14 2013-12-03 International Business Machines Corporation Resuming execution of an execution plan in a virtual machine
US9158768B2 (en) 2012-07-25 2015-10-13 Paypal, Inc. System and methods to configure a query language using an operator dictionary
US9081821B2 (en) 2012-07-25 2015-07-14 Ebay Inc. Spell check using column cursor

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438579B1 (en) * 1999-07-16 2002-08-20 Agent Arts, Inc. Automated content and collaboration-based system and methods for determining and providing content recommendations
US6701362B1 (en) * 2000-02-23 2004-03-02 Purpleyogi.Com Inc. Method for creating user profiles
US20020065802A1 (en) * 2000-05-30 2002-05-30 Koki Uchiyama Distributed monitoring system providing knowledge services
US20100228715A1 (en) * 2003-09-30 2010-09-09 Lawrence Stephen R Personalization of Web Search Results Using Term, Category, and Link-Based User Profiles
US20050071328A1 (en) * 2003-09-30 2005-03-31 Lawrence Stephen R. Personalization of web search
US20050240580A1 (en) * 2003-09-30 2005-10-27 Zamir Oren E Personalization of placed content ordering in search results
US20070130126A1 (en) * 2006-02-17 2007-06-07 Google Inc. User distributed search results
US20070198500A1 (en) * 2006-02-17 2007-08-23 Google Inc. User distributed search results
US20080208844A1 (en) * 2007-02-27 2008-08-28 Jenkins Michael D Entertainment platform with layered advanced search and profiling technology
US20100312724A1 (en) * 2007-11-02 2010-12-09 Thomas Pinckney Inferring user preferences from an internet based social interactive construct
US20090327228A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Balancing the costs of sharing private data with the utility of enhanced personalization of online services
US20090327314A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Extended user profile
US8214380B1 (en) * 2009-02-09 2012-07-03 Repio, Inc. System and method for managing search results
US20100250578A1 (en) * 2009-03-31 2010-09-30 Yahoo! Inc. System and method for conducting a profile based search
US20110055241A1 (en) * 2009-09-01 2011-03-03 Lockheed Martin Corporation High precision search system and method
US20120016875A1 (en) * 2010-07-16 2012-01-19 International Business Machines Corporation Personalized data search utilizing social activities
US20130166494A1 (en) * 2011-12-22 2013-06-27 General Instrument Corporation Hierarchical behavioral profile

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIA HU, "Personalized Web Search by Using Learned User Profiles in Re-ranking", May 2008, pages 1-48 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460151B2 (en) 2012-07-25 2016-10-04 Paypal, Inc. System and methods to configure a query language using an operator dictionary
US9607049B2 (en) 2012-07-25 2017-03-28 Ebay Inc. Systems and methods to build and utilize a search infrastructure
US9158768B2 (en) 2012-07-25 2015-10-13 Paypal, Inc. System and methods to configure a query language using an operator dictionary
US10482113B2 (en) 2012-07-25 2019-11-19 Ebay Inc. Systems and methods to build and utilize a search infrastructure
US10614029B2 (en) 2012-09-24 2020-04-07 Andrew L. DiRienzo Empirical data gathered by ambient observation of a person are correlated vis-à-vis one particular behavior
US9607025B2 (en) * 2012-09-24 2017-03-28 Andrew L. DiRienzo Multi-component profiling systems and methods
US11921669B2 (en) 2012-09-24 2024-03-05 Airedites, Llc Computer systems and processes configured to identify behavioral, action, activity, and/or emotional states of a person and to respond to the identity of the states
US11663158B2 (en) 2012-09-24 2023-05-30 Andrew L. DiRienzo Empirical data gathered by ambient computer observation of a person are analyzed to identify an instance of a particular behavior and to respond to its identification
US11216410B2 (en) 2012-09-24 2022-01-04 Andrew L. DiRienzo Empirical data gathered by ambient computer observation of a person are analyzed to identify an instance of a particular behavior
WO2017037137A1 (en) * 2015-09-01 2017-03-09 upday GmbH & Co. KG Data processing system
FR3056797A1 (en) * 2016-09-29 2018-03-30 Target2Sell METHOD OF ESTABLISHING AN ORDINATED LIST OF OBJECTS AND SYSTEM FOR IMPLEMENTING THE METHOD.
WO2018060161A1 (en) * 2016-09-29 2018-04-05 Target2Sell Method for establishing an ordered list of objects and system for implementing said method
FR3061329A1 (en) * 2016-12-22 2018-06-29 Qwant METHOD FOR LOCAL PROFILING OF A USER OF A TERMINAL AND METHOD FOR SEARCHING PRIVATE INFORMATION
US20190370491A1 (en) * 2016-12-22 2019-12-05 Qwant Method for local profiling of a user of a terminal and method for searching for private information
CN110462605A (en) * 2016-12-22 2019-11-15 酷旺 Method for the method for terminal user locally dissected and for searching for personal information
WO2018115506A1 (en) * 2016-12-22 2018-06-28 Qwant Method for local profiling of a user of a terminal and method for searching for private information
US11562006B2 (en) * 2017-10-03 2023-01-24 Ohio State Innovation Foundation Apparatus and method for interactive analysis of aviation data
US20190102407A1 (en) * 2017-10-03 2019-04-04 Ohio State Innovation Foundation Apparatus and method for interactive analysis of aviation data
US11044258B2 (en) * 2018-08-24 2021-06-22 Kyocera Document Solutions Inc. Decentralized network for secure distribution of digital documents

Also Published As

Publication number Publication date
US20140032532A1 (en) 2014-01-30
US20140032593A1 (en) 2014-01-30
US20170242911A1 (en) 2017-08-24
US20140032566A1 (en) 2014-01-30
US9081821B2 (en) 2015-07-14
US9607049B2 (en) 2017-03-28
US10482113B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
US20140032517A1 (en) System and methods to configure a profile to rank search results
US9460151B2 (en) System and methods to configure a query language using an operator dictionary
US11288282B2 (en) Distributed database systems and methods with pluggable storage engines
US9489443B1 (en) Scheduling of splits and moves of database partitions
US20200050612A1 (en) Supporting additional query languages through distributed execution of query engines
US20200065303A1 (en) Addressing memory limits for partition tracking among worker nodes
US11030171B2 (en) Elastic sharding of data in a multi-tenant cloud
US9703834B2 (en) Topological query in multi-tenancy environment
US9886441B2 (en) Shard aware near real time indexing
US9304815B1 (en) Dynamic replica failure detection and healing
US11012806B2 (en) Multi-adapter support in the cloud
Khalifa et al. The six pillars for building big data analytics ecosystems
US9977815B2 (en) Generating secured recommendations for business intelligence enterprise systems
Abourezq et al. Database-as-a-service for big data: An overview
Zhao et al. Cloud data management
JP6281225B2 (en) Information processing device
US11921750B2 (en) Database systems and applications for assigning records to chunks of a partition in a non-relational database system with auto-balancing
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
US10078676B2 (en) Schema evolution in multi-tenant environment
US10394805B2 (en) Database management for mobile devices
CN113474764A (en) Sharing streams on database objects
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
US9170780B2 (en) Processing changed application metadata based on relevance
US9779177B1 (en) Service generation based on profiled data objects
Niranjanamurthy et al. The research study on DynamoDB—NoSQL database service

Legal Events

Date Code Title Description
AS Assignment

Owner name: EBAY INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HENDERSON, RICHARD D;LAKSHMINATH, ANAND;LIBENZI, DAVIDE;AND OTHERS;SIGNING DATES FROM 20130226 TO 20140430;REEL/FRAME:033251/0361

AS Assignment

Owner name: PAYPAL, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EBAY INC.;REEL/FRAME:036170/0248

Effective date: 20150717

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION