User-based file search results
By building an index table and calculating the closeness relationship between files and users, the problem of difficulty in locating files in email attachment searches is solved, and more efficient file location is achieved.
Patent Information
- Application Number
- CN202111212898.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-20
- Filing Date
- 2021-10-19
- Publication Date
- 2025-10-21
- Estimated Expiration
- 2041-10-19
AI Technical Summary
In the prior art, it is difficult to efficiently find a desired file by searching for an email attachment, especially because similar file names or a complex folder structure make it difficult to locate the desired file.
By building an index table, recording information such as the sender, receiver, file name and timestamp of email messages and attachments, calculating the closeness relationship between files and users, and using the closeness relationship to sort and rank files, the top-ranked files are provided to users.
Improves the efficiency of searching for email attachments, enabling more accurate location of files users need, and reduces the hassles caused by similar file names or complex folder structures.
Smart Images

Figure CN114385556B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to the field of electronic communications and, more particularly, to managing attached files received with electronic communications. Background Art
[0002] Electronic mail (e-mail) is a method of exchanging messages between people using electronic devices. Email systems are based on a store-and-forward model. An email server receives, forwards, delivers, and / or stores messages. Neither the user nor their computer needs to be online at the same time. Users typically need to be electronically connected to a mail server or webmail interface to send and / or receive messages or download attached files. An email attachment, which can be referred to as a message file, is a computer file sent along with an email message. One or more message files can be attached to any email message. Attaching files to email messages is commonly used as a simple way to share documents and / or images. Email systems typically use the MME (Multipurpose Internet Mail Extensions) standard, making email attachments more practical and seamless. Summary of the Invention
[0003] According to one aspect of the present invention, there is a method, computer program product and / or system for file research, which performs the following operations (not necessarily in the following order): (i) receiving a search request based on message files of a specified user from a user, wherein the search request is directed to a file storage system; (ii) identifying a set of message files associated with the specified user; (iii) determining a closeness relationship with the specified user for each message file in the message file set; (iv) sorting the message files in the message file set according to the closeness relationship; and (v) presenting a group of top-ranked message files in the message file set to the requesting user. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 is a block diagram of a system according to a first embodiment of the present invention;
[0005] Figure 2 is a flow chart illustrating a first embodiment method performed at least in part by a first embodiment system;
[0006] Figure 3 is a schematic diagram of the machine logic (eg, software) portion of the first embodiment system;
[0007] Figure 4 is a flow chart illustrating a second embodiment of a system according to the present invention;
[0008] Figure 5 is a flow chart illustrating a third embodiment of a system according to the present invention; and
[0009] Figure 6 is a graphical view showing information generated by and / or useful in understanding embodiments of the present invention. DETAILED DESCRIPTION
[0010] Some embodiments of the present invention are directed to identifying a collection of message files associated with a user. The identified files are processed file by file based on their closeness relationships. Message files are returned in response to a search request and displayed based on their closeness relationships.
[0011] This detailed description section is divided into the following subsections: (i) Hardware and Software Environment; (ii) Example Embodiments; and (iii) Definitions.
[0012] I. Hardware and Software Environment
[0013] The present invention may be a system, method, and / or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon, the computer-readable program instructions being configured to cause a processor to execute various aspects of the present invention.
[0014] Computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card or a raised structure in a groove on which instructions are recorded), and any suitable combination of the foregoing. As used herein, a computer readable storage medium should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (for example, a light pulse passing through an optical fiber cable), or an electrical signal transmitted by a wire.
[0015] A "storage device" is defined herein as anything made or adapted to store computer code in a manner so that the computer code can be accessed by a computer processor. A storage device typically includes a storage medium, which is the material in or on which the data of the computer code is stored. A single "storage device" may have: (i) multiple discrete parts that are spaced apart or distributed (e.g., a set of six solid-state storage devices located in six laptop computers that together store a single computer program); and / or (ii) may use multiple storage media (e.g., a set of computer code stored partly as magnetic domains in a computer's non-volatile storage and partly in a set of semiconductor switches in the computer's volatile memory). The term "storage medium" should be interpreted to cover the use of multiple different types of storage media.
[0016] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0017] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and conventional procedural programming languages, such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In some embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA)) can execute the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions to perform various aspects of the present invention.
[0018] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each block of the flowchart and / or block diagram, and combinations of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions.
[0019] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine that, when executed by the processor of the computer or other programmable data processing apparatus, creates a means for implementing the functions / actions specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing apparatus, and / or other device to function in a specific manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowcharts and / or block diagrams.
[0020] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other apparatus that causes a series of operating steps to be performed on a computer, other programmable apparatus or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus or other device implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0021] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram can represent a part of a module, segment or instruction, which includes one or more executable instructions for realizing the logical function of the specification. In some alternative implementations, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession can actually be executed substantially simultaneously, or these boxes can sometimes be executed in the opposite order. It will also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a system based on special-purpose hardware, and the system based on special-purpose hardware performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.
[0022] like Figure 1As shown, networked computer system 100 is an embodiment of a hardware and software environment for use with various embodiments of the present invention. Networked computer system 100 includes: file manager subsystem 102 (sometimes referred to herein more simply as subsystem 102); user A 104; user B 106; client subsystems 108 and 112; user B file 109; storage 110; user A file 111; and communication network 114. Subsystem 102 includes: file manager computer 200; communication unit 202; processor set 204; input / output (I / O) interface set 206; memory 208; persistent storage 210; display 212; external devices 214; random access memory (RAM) 230; cache 232; file manager program 300 (sometimes referred to herein more simply as program 300); and index table 302.
[0023] Subsystem 102 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smartphone, or any other type of computer (see the definition of "computer" in the Definitions section below). Program 300 is a collection of machine-readable instructions and / or data for creating, managing, and controlling certain software functions, which are discussed in detail below in the Example Embodiments subsection of the Detailed Description section.
[0024] Subsystem 102 can communicate with other computer subsystems via a communications network 114. Network 114 can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and can include wired, wireless, or fiber optic connections. In general, network 114 can be any combination of connections and protocols that will support communication between server and client subsystems.
[0025] Subsystem 102 is shown as a block diagram with a number of double arrows. These double arrows (without separate reference numerals) represent a communication structure that provides communication between the various components of subsystem 102. The communication structure can be implemented using any architecture designed to transfer data and / or control information between processors (such as microprocessors, communication and network processors, etc.), system memory, peripheral devices, and any other hardware components within a computer system. For example, the communication structure can be implemented at least in part using one or more buses.
[0026] Memory 208 and persistent storage 210 are computer-readable storage media. In general, memory 208 may include any suitable volatile or non-volatile computer-readable storage media. It should also be noted that currently and / or in the near future: (i) external device 214 may be able to provide some or all of the memory for subsystem 102; and / or (ii) devices external to subsystem 102 may be able to provide memory for subsystem 102. Memory 208 and persistent storage 210 both: (i) store data in a manner that is more permanent than a signal in transit; and (ii) store data on tangible media (such as magnetic or optical media). In this embodiment, memory 208 is volatile storage, while persistent storage 210 provides non-volatile storage. The media used by persistent storage 210 may also be removable. For example, a removable hard drive may be used for persistent storage 210. Other examples include optical and magnetic disks, thumb drives, and smart cards, which are inserted into a drive to transfer data to another computer-readable storage medium that is also part of persistent storage 210.
[0027] Communications unit 202 provides communications with other data processing systems or devices external to subsystem 102. In these examples, communications unit 202 includes one or more network interface cards. Communications unit 202 can provide communications using one or both of physical and wireless communication links. Any software modules discussed herein can be downloaded to a persistent storage device, such as persistent storage 210, via a communications unit, such as communications unit 202.
[0028] The I / O interface set 206 allows for input and output of data with other devices that may be locally connected in data communication with the file manager computer 200. For example, the I / O interface set 206 provides a connection to an external device set 214. The external device set 214 typically includes devices such as a keyboard, a keypad, a touch screen, and / or some other suitable input device. The external device set 214 may also include portable computer-readable storage media, such as, for example, a thumb drive, a portable optical or magnetic disk, and a memory card. Software and data (e.g., program 300) used to implement embodiments of the present invention may be stored on such portable computer-readable storage media. The I / O interface set 206 is also connected in data communication with a display 212. The display 212 is a display device that provides a mechanism for displaying data to a user and may be, for example, a computer monitor or a smartphone display screen.
[0029] In this embodiment, the program 300 is stored in the persistent storage 210 for access and / or execution by one or more computer processors of the processor assembly 204, typically through one or more memories of the memory 208. Those skilled in the art will appreciate that the program 300 may be stored in a more highly distributed manner during its runtime and / or when it is not running. The program 300 may include machine-readable and executable instructions and / or substantive data (i.e., the type of data stored in a database). In this particular embodiment, the persistent storage 210 includes a magnetic hard drive. To name some possible variations, the persistent storage 210 may include a solid-state hard drive, a semiconductor memory device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0030] The programs described herein are identified based on their applications in specific embodiments of the invention. However, it should be understood that any specific program nomenclature herein is used for convenience only, and thus the present invention should not be limited to use only in any specific application identified and / or implied by such nomenclature.
[0031] The description of various embodiments of the present invention has been presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.
[0032] II. Example Embodiments
[0033] Some embodiments of the present invention recognize the following facts, potential problems, and / or potential areas for improvement relative to the prior art: (i) after sending and / or receiving a message with a file attached via (a) an email application, (b) a business communication platform, or (c) an online storage, it may be difficult to find the file using current search systems. Conventional searches are based on file name, date received, date sent, file type, and subject line or keywords; and (ii) it may be difficult to find a desired file because there may be many files or folders with similar names.
[0034] like Figure 1 As shown, the networked computer system 100 is an environment in which the example methods according to the present invention may be performed. Figure 2As shown in flowchart 250, according to some embodiments of the present invention, an algorithm uses an index table (such as index table storage 302) to construct file storage records and perform data searches. Figure 3 As shown, the file manager program 300 executes or controls Figure 2 The execution of at least some of the method operations of the flowchart 250 in FIG. will now be broadly referenced in the following paragraphs. Figure 1 (System of Embodiments of Hardware and Software Environment), Figure 2 (Operational Flowchart) and Figure 3 (Diagram of Operational Blocks) to discuss the method and associated software.
[0035] Processing begins at operation S255, where the search results module ("mod") 355 receives a set of search results for a file name, including a sender user and a set of recipient users. In this example, the user A subsystem 104 stores the email message and related attachments in the storage subsystem 110 ( Figure 1 ) in the user A file store 111 of the user B subsystem 106. The user B subsystem 106 stores the email message and related attachments in the user B file store 109. When performing a search for email records, the user searches the corresponding file store containing email messages and attachments belonging to the user, whether sent by the user or received from another user. The search results received by the search results module may include: (i) messages; (ii) attached files; and (iii) message storage locations. Some embodiments of the present invention do not include message storage locations because the file manager application is specific to a single user and a predefined set of message storage locations. Alternatively, messages are not included in the search results, but only attached files and file storage locations are included. Further, for systems specific to a specific user or a specific entity, the file storage locations may be predefined. The search results received at step S255 are compiled in a manner known in the art, such as in chronological order by the date the email was sent. Other search results may appear in order of sender name or recipient name.
[0036] It should be noted here that, as discussed in more detail below, each time a user sends or receives an email with an attachment, the index table is updated to track certain information about the attachment, including: (i) the sender; (ii) the recipient; (iii) the file name; and / or (iv) the timestamp. In this example, the receipt of an email with an attachment by the user A subsystem will prompt the email and the corresponding attachment to be automatically stored in the user A file store, and in the index table storage 302 ( Figure 1 ) to update the corresponding index table.
[0037] Processing proceeds to operation S260, where the index table module 360 retrieves the index table for the attached files in the messaging system. The search results received in step S255 are a search of message records and files of the same messaging system from which the index table was generated. For example, if the search results received are based on a search of the messaging application used by User A's subsystem, the index table module will retrieve the index table for User A's file storage.
[0038] Processing proceeds to operation S265, where the separation module 365 determines the degree of separation between the target user and the sender user for each identified file based on the index table. When the target user receives the identified file directly from the sender, the degree of separation from the sender may have a value of two. If the target user sends the identified file, then if receiving the file from the sender results in a degree of separation of two, the degree of separation will be one. While the values associated with the target user and the sending user may vary, the value will increase for each user in the path between the sending user and the target user.
[0039] In some embodiments of the present invention, the separation module 365 identifies a set of message files associated with a specified user within the search results. The system determines the degree of separation, also referred to herein as distance, steps, or hops, between the specified user and each associated file. According to some embodiments of the present invention, the distance between the message files and the associated users is recorded in the form of a graph, so that tracing the graph from the specified user to the message files allows the user to "measure" the distance or visualize the degree of separation.
[0040] Processing proceeds to operation S270, where the weighted ranking module 370 calculates a weighted ranking for each file based on the degree of separation from the target user. The weighted ranking module determines the closeness relationship with the specified user for each message file in the search results. In this example, the degree of separation from the specified user to the sender of the file is used to calculate a weighted value for each file. In this example, the weighted value is the inverse of the degree of separation. When ranking the received search results by relevance, the degree of separation weighted value is multiplied by the relevance ranking value to obtain a new total weighted value.
[0041] According to some embodiments of the present invention, the weighted ranking module 370 ranks the message files in the message file set according to their relative closeness relative to the closeness relationship value. In this example, files with stronger relationships with a given user are ranked relatively higher than other files. The highest-ranked files are the most likely files that the user has searched for.
[0042] Processing concludes at operation S275, where the weighted results module 375 presents the requesting user with a set of search results organized according to the final weighted ranking. In this example, when User A subsystem 104 performs a search on files in User A's file storage 111, the search results are organized chronologically by send date. The search results are evaluated against the index table to generate a weight value for each file in the search results. The final weighted and ranked search results are returned to the requesting user for review. Alternatively, the highest-ranked file according to the final weighted ranking is opened in the application for review by the requesting user.
[0043] In the following paragraphs and see Figure 4-6 Further embodiments of the present invention are discussed.
[0044] Figure 4 A flow chart 450 is shown describing a second method according to an embodiment of the present invention. Figure 4 The method and associated software are discussed (for method step boxes). The method outlined in flowchart 450 can be implemented in different computer systems, whether stand-alone computer devices or in a networked computer system such as networked computer system 100 ( Figure 1 ) on the network system.
[0045] Flowchart 450 illustrates a process for generating an index table used by a search algorithm.Table 1 is an example of an index table according to some embodiments of the present invention.
[0046] Processing begins at operation S455, where the system stores the file and message information in the file storage location. The file and message information for the file may include: (i) a message destination; (ii) a file name; (iii) a storage destination; and / or (iv) a timestamp. The timestamp typically indicates the origination date, the receipt date, and / or the sending date. The date information stored as the timestamp may include the month, day, year, hour, day of the week, and / or week of the month. The import process begins by creating a new record stored in a dynamic index table such as Table 1.
[0047] Processing continues to operation S460, where the system records the message information and file name in the index table. The system identifies the name of the designated user and the name of the user designated as the message transmission destination in the email, business communication platform channel member, and / or online storage member. The identified information is recorded in the index table. For example, in Table 1, this information is shown in the "Sender User" and "Related Users" columns.
[0048] Processing concludes at operation S465, where the name and location of the received file are determined. This information is stored in the index table. For example, this information is shown in the "File Location" and "File Name" columns in Table 1. Continuing with operation S460, the received timestamp is recorded. The recorded timestamp is stored in the index table. For example, in Table 1, the date and time are recorded in the "Timestamp" column.
[0049] Processing ends at operation S476, where the system stores the index table for future lookup operations. The collected and / or recorded information is stored as a single record in the index table. Flowchart 450 creates an index table, such as Table 1 below, that: (i) is created at the time of transmission / reception; (ii) can be updated periodically; (iii) can be a single index table; and / or (iv) can be divided into separate index tables for transmission and reception.
[0050] As shown in Table 1; (i) old data can be appropriately deleted based on restrictions on the number of index items and / or timestamps; and (ii) files with the same name but different contents can be managed (generation management) by appropriately renaming the files internally.
[0051] Sender user Related users File Location file name Timestamp B C,D,E / work / projX / file_aaa.ppt 2019 / 10 / 14 14:29 F C,G / work / cosmo / file_bbb.xls 2019 / 10 / 14 16:10 H K,L,M / work / tecj / file_ccc.ppt 2019 / 10 / 14 09:05
[0052] Table 1: Index table containing input data
[0053] Figure 5 A flowchart 550 is shown depicting a third method according to an embodiment of the present invention. Figure 5 The method and associated software are discussed (for method step boxes). The process 500 can be implemented on any operating system, for example, an operating system active on a partition, on a hardware management console, on a network switch, or on a storage controller. The method outlined in the flowchart 550 can be implemented in different computer systems, whether stand-alone computer devices or in a networked computer system such as the networked computer system 100 ( Figure 1 In this example, Table 1 is used to search for files according to the algorithm expressed in flowchart 550.
[0054] Processing begins at step S555 where the system receives file search results and related user information.
[0055] Processing proceeds to step S560, where the system determines the distance between each file in the file search results and the first user. The term distance has a similar meaning to degree of separation and is used in a similar manner herein. In this example, the distance and subsequent calculation and ranking are performed for each identified user. Thus, this step indicates the first user, and subsequent users should be considered the "next user."
[0056] Processing proceeds to step S565, where the system calculates a weighted value to numerically represent the closeness. The proximity of each user to the file is calculated using a weighting scheme that increases the distance value for each step the user takes from the sender of the file. According to some embodiments of the present invention, the weighted value is the inverse of the distance. Furthermore, some embodiments of the present invention multiply the ranking value used to rank the original search results by the weighted value calculated in step S560 to determine a final weighted value.
[0057] Processing proceeds to step S570, where the system organizes the file search results according to the weighted values.Some embodiments of the present invention generate a graphical display that illustrates the weighted values as physical distances from user to user.
[0058] The process proceeds to decision step S575, where the system determines whether each user has been processed. If each user has been processed, the process follows the "yes" branch to step S580. If each user has not been processed, the process follows the "no" branch and returns to step S560 to select the next user.
[0059] Processing ends at step S580, where the system presents the ranked results to the requesting user.
[0060] As an example, Table 2 below shows the results of a regular file search. In this example, file_a has a regular rank of 1 with a weight of 0.99. Similarly, file_d has a regular rank of 2 with a weight of 0.98, and file_b has a regular rank of 3 with a weight of 0.86.
[0061] Ranking document Weight 1 file_a 0.99 2 file_d 0.98 3 file_b 0.86
[0062] Table 2: Initial search results
[0063] Table 3 below illustrates the weighted calculation and multiplication. In this example, the distance from the specified user to the file's location is used to calculate the weighted value for each file. The weight is the inverse of the number of steps / hops from the specified user to the file being searched. This calculated weight is then multiplied by the conventional weights shown in Table 2 to obtain a new weighted value.
[0064] file_a:1 / 9x 0.99=0.11 file_d:1 / 3x 0.98=0.33 file_b:1 / 5x 0.85=0.17
[0065] Table 3: Weighting process
[0066] Table 4 below shows the recalculation of rankings according to an embodiment of the present invention. Files with stronger relationships to a given user X are ranked higher. In this example, file_d is now the highest ranked, with a ranking of 0.33, and is the most likely location for the given user to attempt to find the file being searched for.
[0067] 1 file_d 0.33 2 file_b 0.17 3 file_a 0.11
[0068] Table 4: Relationship-weighted ranking of initial search results
[0069] According to an embodiment of the present invention, a graph (also referred to herein as a chart) is created from an index table as a transmission or reception. A set of users associated with the sender is obtained from the receiving index table of user A. Information (name, storage location, timestamp) is attached to the sender, and an edge is created between the sender and each related user to whom the file is addressed, so that the edge represents a communication link between the users. A merge is performed to the index graph of user A. If the sender already exists on the graph, the attachment information is added, and if the edge already exists, the input is ignored. The above operation is repeated each time a file is received and saved. If the graph grows too large over time, the old edges and nodes can be deleted to allow for new edges and nodes.
[0070] Figure 6 606a, 606b, 606c, 606d, 606e, and 606f.
[0071] According to an embodiment of the present invention (from the perspective of user A) and as Figure 6 As shown in Figure 600; (i) specifying user 606b and file name while performing a search; (ii) performing a conventional search using the file name to obtain a set of files 602a, 602b, 602c and 602d as search results; (iii) tracking a graph from user 606b and weighting the files of the search results in ascending order of distance (an example of weighting: 1 / (number of steps from user 606b to the file)); (iv) multiplying each value of the original ranking of the search result by a weighted value to reflect the strength of the relationship with user 606b; (v) when user 606b is not included in the related users in the case of receiving a file to be searched, the possibility of finding the file becomes higher because the files are searched in order of the shortest distance; (vi) in addition to a conventional file name search, specifying users who are considered to be related to the desired file allows the desired file to be found efficiently; and (vii) using information about users related to attached files as an index, it is possible to perform a search that takes content into consideration compared to a conventional search based mainly on the file name.
[0072] Some embodiments of the present invention may include one or more of the following operations, features, characteristics and / or advantages: (i) creating an index table including, but not limited to: (a) relevant member (mail (email)) address information, (b) business communication platform information, and / or (c) group information of members from a cloud content management and file sharing service when attaching, sending or receiving a file; (ii) making the information available as metadata (attribute values) in a file system; (iii) using the index (attribute values) to identify and quantify the strength of the relationship between files and members as distance; and (iv) expecting to efficiently search for files by searching for information related to the content of the file (e.g., a specific member's project and a specific event).
[0073] Some embodiments of the present invention may include one or more of the following operations, features, characteristics and / or advantages: (i) creating an index containing relationships between emails and user information; (ii) being combinable into business communication platforms, online storage and / or emails, etc., to enable more flexible searches than conventional searches; (iii) the index is not stored in a local site, but is created using information stored in: (a) online storage, (b) business communication platform channels, (c) information in status attached to emails, and / or (d) stored in a cloud environment; and (iv) enabling searching in a horizontal manner not only for files stored in a local site but also for files that can be referenced on a website.
[0074] A computer-implemented method for file search according to an embodiment of the present invention includes the following operations (not necessarily in the following order): (i) retrieving a file name, a file location, and a file-related user; (ii) receiving a file search request with a file name and a specified user; (iii) searching for files by file name and ranking the files; (iv) obtaining a distance between each file and the specified user; (v) calculating a weighted value using the distance; (vi) re-ranking the files based on the weighted value; (vii) storing the file names and file-related users in the form of a graph; (viii) obtaining a distance between each file and the specified user by tracing the graph from the specified user to each file; (ix) utilizing the distance between each file and the specified user; and (x) calculating a weighted value using the distance.
[0075] III. Definitions
[0076] The present invention: should not be taken as an absolute indication that the subject matter described by the term "the present invention" is covered by the claims as filed, or by claims that may ultimately issue after patent examination; while the term "the present invention" is used to help readers get a general sense of how the disclosure herein is believed to be potentially new, as indicated by the use of the term "the present invention," such understanding is tentative and provisional and is subject to change during the patent prosecution process as relevant information develops and as the claims are potentially amended.
[0077] Example: See above definition of "present invention" - similar considerations apply to the term "example".
[0078] And / or: inclusive or; for example, A, B "and / or" C means at least one of A or B or C is true and applicable.
[0079] Including: unless expressly stated otherwise, means "including but not necessarily limited to".
[0080] Module / Sub-module: Any collection of hardware, firmware, and / or software that is operable to work to perform a function, regardless of whether the module is: (i) in a single local vicinity; (ii) distributed over a wide area; (iii) in a single vicinity within a larger software code segment; (iv) located within a single software code segment; (v) located in a single storage device, memory, or media; (vi) mechanically connected; (vii) electrically connected; and / or (viii) data communicatively connected.
[0081] Computer: Any device with significant data processing and / or machine-readable instruction reading capabilities, including but not limited to: desktop computers, mainframe computers, laptop computers, field programmable gate array (FPGA)-based devices, smart phones, personal digital assistants (PDAs), wearable or plug-in computers, embedded device computers, and application-specific integrated circuit (ASIC)-based devices.
Claims
1. A computer-implemented method comprising: receiving a search request for a message file based on a specified user from a requesting user, the search request being directed to a file storage system; identifying a set of message files associated with the specified user; determining, for each message file in the message file set, a closeness relationship with the designated user, wherein determining the closeness of each given message file in the message file set comprises determining a number of hops between the designated user and the given message file; Ranking the message files in the message file set according to the closeness relationship; as well as presenting a group of top-ranked message files in the message file set to the requesting user, The determination of the hop count for a given message file includes counting the number of edges of the graph traversed from the designated user to the given message file when traversing a graph structure.
2. The computer-implemented method of claim 1 , further comprising: storing the message file received as an attachment to the electronic message in the file storage system; Record the file name of the message file and the corresponding related user into the index table; as well as The message file and the recorded information are presented in the form of a graph.
3. The computer-implemented method of claim 1, wherein the message file is an attachment associated with an email message.
4. The computer-implemented method of claim 1 , wherein: The search request is further based on specifying a file name; and The message file collection includes a file that is also associated with the specified file name.
5. The computer-implemented method of claim 1 , further comprising: Creates an index table entry containing search-related information when a new file is attached or received; as well as The index table entries are made available as metadata in the file storage system.
6. A computer program product comprising: a set of storage devices; as well as Computer code commonly stored in the set of storage devices, the computer code comprising data and instructions for causing a set of processors to perform at least the operations of the method of any one of claims 1 to 5.
7. A computer system comprising: processor sets; a set of storage devices; as well as Computer code commonly stored in the set of storage devices, the computer code comprising data and instructions for causing the set of processors to at least perform the operations of the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
Internet and computer information retrieval and mining with intelligent conceptual filtering, visualization and automation
US20060106793A1
System and method for searching peer-to-peer computer networks
US20060218275A1
Systems and Methods for Tagging Emails by Discussions
US20100030798A1
User engagement with co-users of a networking system
US20200329005A1