WO2015108530A1 - File locator - Google Patents
File locator Download PDFInfo
- Publication number
- WO2015108530A1 WO2015108530A1 PCT/US2014/012028 US2014012028W WO2015108530A1 WO 2015108530 A1 WO2015108530 A1 WO 2015108530A1 US 2014012028 W US2014012028 W US 2014012028W WO 2015108530 A1 WO2015108530 A1 WO 2015108530A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- files
- similarity
- users
- file
- user
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Definitions
- FIG. 1 is an example block diagram of a large scale network that includes multiple storage area networks (SANs) and multiple users;
- SANs storage area networks
- FIG. 2 is an example process flow diagram of a method for a combined keyword and similarity search
- FIG. 3 is an example process flow diagram of another method for a combined similarity and keyword search.
- Fig. 4 is an example block diagram of a tangible, computer readable medium that includes code configured to direct a processor to execute combined searches.
- a recommender system compares user data and user file access to determine what files similarly situated users are opening.
- the analysis of similarities for both users and files may be implemented using Pearson Correlation Scores, among others.
- the numerical scores for the correlation can be used to predict the relevancy of content, and make recommendations accordingly.
- a keyword search can be run for the relevant group of files to identify the most likely files of use.
- Fig. 1 is an example block diagram of a large scale network 100 that includes multiple storage area networks (SANs) 102 and multiple users 104.
- the users 104 may be members of different groups, for example, a first group 1 06 may be users in a corporate HR organization, a second group 108 may be users in a corporate sales organization, a third group 1 10 may be users in an executive functions for the corporation, other groups 1 12 may be users in engineering, R&D, distribution functions, or customers, among others.
- the network can be part of server farm.
- the users 104 may be coupled to a corporate storage, such as the SANs 102, through a network 1 14.
- the network 1 14 may be a private corporate network, a public network, such as the Internet, or a combined public and private network, such as a corporate network in which multiple sites are connected through virtual private networks over a public network.
- Different users 104 may have different needs for files, as well as different levels of access.
- the SANs 102 may hold millions of files, or more, for example, including pay records, compensation guidelines, new products, and plant production records, among many others.
- a user 1 16 in a particular group 1 10 may wish to locate a file 1 18 in a corporate storage, such as the SANs 102.
- a corporate storage such as the SANs 102.
- any normal search function may be very time consuming.
- users are generally unaware of other documents that could be relevant to their work, based on the activity of other similar users.
- other users 1 20 from a single group, such as group 1 10, accessing the same files 122 may indicate that the content of those files 122 and files 124 that are similar in type and content have a high probability of being relevant to the user 1 16 searching for the file 1 1 8.
- a storage manager 126 may be used to implement a method to make it easier to find the desired file 1 18.
- the storage manager 126 may include a similarity engine 128 that calculates a similarity between users, such as members of a single group 1 1 0, and files 122 and 124. The results of the similarity calculation can be stored for future use in a similarity database 1 30.
- the storage manager 126 may also include a metadata database 132 which stores keywords and metadata concerning files in the SANs 102.
- the metadata database 132 may include the similarity database 1 30.
- the metadata may include file types, such as image files, documents, and the like, as well as sizes, storage formats, document owners, document groups, authors, and the like.
- the metadata database 132 may also store custom metadata, such as a series of key-value properties arbitrarily assigned by the users to each document.
- key words can also be generated for files, for example, using text processing techniques to identify the most common words, concepts, and the like.
- a search engine 134 can be used to search for metadata or a keyword in the metadata database 132, or subsets thereof, for example, to identify files that have the highest correlation with that word or concept.
- a recommender engine 1 36 can be used to identify files that have been accessed by users that are similarly situated, such as files 122 or files 124 having similar type and content. In this simplified example seven files 122 and 124 would be reported.
- the recommendations provided by the recommender engine 136 can be further narrow by making use of the search engine 134 to search the metadata database 132 for file system metadata, file contents, or both.
- the recommender engine 136 combines regular search algorithms with recommender systems to provide better and more accurate results.
- searching for specific content in a file system with billions of files can include a double search or a search within a search. For example, a first search with keywords or other metadata, and a second search, based on similarity calculations for meaningful results inside the search results.
- the application of recommender systems to these search results will help users reduce the time to filter out noise in the keyword search results.
- Fig. 2 is an example process flow diagram of a method 200 for a combined keyword and similarity search.
- the method begins at block 202 with a user entering search conditions. These conditions may include system metadata, custom metadata, and keywords related to file contents. For example, in a medical PACS (Picture Archiving and Communication System) objects may be tagged with metadata like Patient Name, Patient Sex, Study Date, and Type of Study.
- the search is run, for example, on a metadata database, using these metadata and others like file size, last accessed time, keywords, and others. Although the search could be run on the file system, as discussed above, this may lead to long search times.
- the metadata database indexes the metadata of all objects in the file system, and may perform searches 100,000 times faster than a regular find command on the file system.
- a recommender engine may apply a file-based nearest neighbor recommendation to sort the preliminary results set. This is based on the activity of similar users on the file systems, which may be determined at block 210, prior to the search.
- the similarity calculation represented in block 210 may use the mapping detailed in Table 1 .
- the recommender system When the recommender system starts, it "learns" about the behavior of users in the file system assigning a value for each type of activity a user performs on a file. This information is maintained in a table, for example, in the metadata database or a similarity database, and can be used for the file based recommendations.
- the recommender system first processes the results returned by the search engine by sorting the results by an interest defined, for example, by previous activity.
- the system may assume that the user will be interested in files he has already worked with, so they will be the first in the results list.
- the files browsed by the user e.g., when a user selects a file and display the file properties, may be appended to the results list.
- the recommender system takes the rest of the result set and tries to predict how the user will rank those results. The prediction can be based on file-based nearest neighbor recommendation, e.g., if there are files similar to the ones the user already interacted with, those will be ranked high in the result set.
- the similarity of files is calculated at block 212, and may be performed prior to the search.
- the similarity of files in the recommender system may be calculated using the adjusted cosine similarity algorithm, among others. For example, the similarity
- Table 2 User-Object activity matrix
- This table is adjusted by subtracting the average value for each user in the Matrix. For example, the average value for User A for Objects 1 , 2, 3, 4, 5 is 1 .8, so the line for user A will be as shown in Table 3.
- Table 3 Average value for objects for User A
- the sim between Object 6 and Object 4 is 0.89.
- the sim values range between -1 and 1 , with 1 denoting perfect match or strong similarity.
- the recommender system predicts the action User A will take on Object 6.
- a prediction close to 3 means the User will probably open the file, 2 means the user will inspect the file metadata, and 1 means the User will probably ignore the file. This prediction will be used to enhance the search results by categorizing the results based on this probability.
- the matrix will take only into account activity from a reduced set of users and find the users with similar activity in the system. The calculation of this reduced set of users may be used for collaborative recommendations.
- the sorted list of results may be enhanced by the addition of a list of similar files collected during this step, for example, using the file similarity results from block 212 and user similarity calculated at block 21 0.
- the list will contain files based on similarity by activity, and present the users with files that other users in the group are using, which the user might be interested as well. This will produce a list of files recently used by similar user.
- user similarity is calculated at block 21 0 only between users belonging to the same user group, for example, as defined in groups in POSIX file systems or Windows Active Directory groups.
- the system calculates the Pearson's coefficient (r), which shows the degree of relationship between two variables, as shown in Table 4.
- the Pearson's coefficient will have a value between -1 and 1 , wherein each extreme represents a perfect positive or negative correlation, respectively.
- the two variables may represent the activity scores for the two users.
- a value for the Pearson's coefficient of +1 implies that the users performed identical activities in the file system.
- a value of 0 denotes the absence of linear relationship.
- Negative values for the Pearson's coefficient scores means that most files opened by one user are ignored by the second user.
- the recommender system may calculate the coefficient r, e.g., the Pearson's coefficient, between all members of a group. After these coefficients are calculated, it selects the top N users with higher coefficient r. After constructing the list of similar users, the system then selects the files that those users have recently opened and at block 214 presents them to the user as files added to the list of recommendations. For example, if a number of users from the Human Resources department are reading a document about an important change in the employees' benefits, this document will be displayed as added to the preliminary results set for a similar user in the department that has not read the file yet.
- the coefficient r e.g., the Pearson's coefficient
- Individual files or group of files can also be excluded from the system.
- the list of recommended files generated at block 214 may include files recently opened by some users in the group that are not related to the one selected by the user, e.g., some users from the group may be listening to an mp3 file stored in the storage system.
- the recommender system calculates the similarity of the documents, for example, using a Jaccard/Tanimoto Index, among others.
- the Jaccard/Tanimoto Index is used in statistics to compare similarity and diversity of sample sets.
- number of elements in
- custom metadata set S a the number of elements in custom metadata set S b and
- T index of 1 the more similar both files are in terms of custom metadata.
- a T index of 0 denotes no proximity between the sets.
- T is calculated twice for each pair of files, wherein a first file is the top file in the preliminary result search and the second is each file from the list produced by the Pearson Coefficient.
- One calculation of T is for the Key part of the key-value pair of the custom metadata and the second calculation is for the double tuple key-value.
- the T index calculation for the key-value pair part will give the provenance index (T p ).
- the provenance index determines whether the files have similar keys in their key-value set, which indicates that the files were created by similar applications. For example a medical application for storing medical images will create a set of metadata keys for each file with keys like Patient Name, Patient Sex, Study Date, and Performing Physicians Name.
- T index calculation for the T key-value tuple will give the similarity index, (T s ).
- T s similarity index
- the list of recommended files is presented to the user.
- the list may include hypertext links that allow the user to directly access the metadata for each file, or the file contents, by selecting options in the list.
- the method 200 is not limited to the order or techniques described above. Any number of other correlation and filtering functions may be substituted for the Pearson's coefficient, the Jaccard/Tanimoto filter, or both. Further, any number of search engines can be used to build the preliminary result set.
- Fig. 3 is an example process flow diagram of another method 300 for a combined similarity and keyword search. Like numbered items are as discussed with respect to Fig. 2. This is similar to the method 200 discussed with respect to Fig. 2, although the recommender search is run first in the example discussed with respect to Fig. 3.
- the method 300 starts at block 302 with the user entering a keyword and starting the search.
- the recommender engine identifies files based on similarities between users and files, for example, as calculated in blocks 210 and 212. The identification may use the same techniques as described with respect to block 208 of Fig. 2. However, in block 304, all files identified as similar are entered into a list.
- further files may be added to the list based, at least in part, on file similarity. This may be performed as described with respect to block 214 of Fig. 2. As noted, the files that are added may not be directly related to the search. Thus, at block 308, a filtering function, such as the
- Jaccard/Tanimoto filter discussed with respect to block 21 6 may be used to remove files that have a similarity below a selected limit.
- the user may provide keywords, if they were not provided at block 302.
- the user may open a search screen and be presented with a list of recommendations based on similar users and the similarity with other files.
- the user may be presented with an option to enter metadata or keywords to narrow the list of files further.
- a search engine may then run a metadata or keywords search on the preliminary results set in a metadata database, as described with respect to bock 204.
- the final results set 316 may then be reported to the user.
- the method 300 is not limited to the blocks shown in Fig. 3, but may include any number of other techniques.
- the search may be iterative.
- process flow may return from block 314 to block 304 to run through the similarity steps prior to presenting the recommended results set.
- Fig. 4 is an example block diagram of a tangible, computer readable medium 400 that includes code configured to direct a processor 402 to execute combined searches.
- the tangible computer readable medium 400 may be a hard drive, an optical drive, a solid state drive, a thumb drive, a RAM drive, or any number of other tangible storage devices.
- the tangible computer readable medium 400 may be accessed by the processor 402 over a bus 404.
- the tangible computer readable medium 400 may include a metadata database 406 that stores data about files in a data store.
- the data may include metadata, keywords, and results of similarity calculations as described above.
- a recommender engine 408 may be included to identify files for recommendations to users based, at least in part, on similarities between users and between files.
- a user similarity calculator 410 may be included to calculate the similarity between users, e.g., the likelihood that a user in a similar group or position would select similar files.
- a file similarity calculator 41 2 may be included to perform the same calculation for files.
- a filtering function such as a Jaccard/Tanimoto filter, may be included in either or both of the similarity calculators 410 and 412.
- the tangible computer readable medium 400 may also include a search engine 414 that can search the metadata database 406 for metadata, keywords, or both.
- the search engine 414 may include the capability of directly searching the file structure, although it may be rarely used.
- the search engine 414 may also include language processing capabilities to allow the search engine 414 to locate documents that have similar words to the user entered metadata or keywords, allowing the search to progress even when words are synonyms, misspelled, and the like.
- the code blocks are not limited to those shown, but may be organized in any number of ways while retaining the same functionality.
- the filtering function may be set up as a separate module.
- a separate coordination module may be included to operate the functions.
- the coordination function may be a part of the recommender engine 408.
Abstract
Locating files in a storage system includes calculating a similarity between a number of users, and calculating a similarity between a number of files. A keyword is obtained, and a list of files is recommended to a user based, at least in part, on the similarity between the user and other users, the similarity between the files and other files, and the keyword.
Description
FILE LOCATOR
BACKGROUND
[0001] The size of file based storage system continues to grow exponentially, driven, in part, by the need for content sharing in organizations, compliance requirements from government regulations, and entertainment content all expand. Some commercial systems can store 1 6 petabytes of data, or more. When considering single namespaces at this petabyte scale, the traditional methods for searching specific objects by name, path, or extension may not be adequate. A search for a specific file name in a large file system could take several hours or even days. Further, the user may need to know precise information about the file being searched, since file name searches return the results of the query sorted by date order, and not by relevance or importance.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Certain exemplary embodiments are described in the following detailed description and in reference to the drawings, in which:
[0003] Fig. 1 is an example block diagram of a large scale network that includes multiple storage area networks (SANs) and multiple users;
[0004] Fig. 2 is an example process flow diagram of a method for a combined keyword and similarity search;
[0005] Fig. 3 is an example process flow diagram of another method for a combined similarity and keyword search; and
[0006] Fig. 4 is an example block diagram of a tangible, computer readable medium that includes code configured to direct a processor to execute combined searches.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
[0007] The techniques described herein disclose the use of combined search systems that use both recommender engines and search engines. As used herein, a recommender system compares user data and user file access to determine what files similarly situated users are opening. The analysis of similarities for both users and files may be implemented using Pearson Correlation Scores, among others. The numerical scores for the correlation can be used to predict the relevancy of
content, and make recommendations accordingly. Once recommendations are made, a keyword search can be run for the relevant group of files to identify the most likely files of use.
[0008] Fig. 1 is an example block diagram of a large scale network 100 that includes multiple storage area networks (SANs) 102 and multiple users 104. The users 104 may be members of different groups, for example, a first group 1 06 may be users in a corporate HR organization, a second group 108 may be users in a corporate sales organization, a third group 1 10 may be users in an executive functions for the corporation, other groups 1 12 may be users in engineering, R&D, distribution functions, or customers, among others. In another example, the network can be part of server farm.
[0009] The users 104 may be coupled to a corporate storage, such as the SANs 102, through a network 1 14. The network 1 14 may be a private corporate network, a public network, such as the Internet, or a combined public and private network, such as a corporate network in which multiple sites are connected through virtual private networks over a public network. Different users 104 may have different needs for files, as well as different levels of access. The SANs 102 may hold millions of files, or more, for example, including pay records, compensation guidelines, new products, and plant production records, among many others.
[0010] As an example, a user 1 16 in a particular group 1 10 may wish to locate a file 1 18 in a corporate storage, such as the SANs 102. However, as the SANs may contain very large numbers of files, any normal search function may be very time consuming. In addition to the long search times, users are generally unaware of other documents that could be relevant to their work, based on the activity of other similar users. For example, other users 1 20 from a single group, such as group 1 10, accessing the same files 122 may indicate that the content of those files 122 and files 124 that are similar in type and content have a high probability of being relevant to the user 1 16 searching for the file 1 1 8.
[0011] In this example, a storage manager 126 may be used to implement a method to make it easier to find the desired file 1 18. The storage manager 126 may include a similarity engine 128 that calculates a similarity between users, such as members of a single group 1 1 0, and files 122 and 124. The results of the similarity calculation can be stored for future use in a similarity database 1 30. The storage manager 126 may also include a metadata database 132 which stores keywords and
metadata concerning files in the SANs 102. The metadata database 132 may include the similarity database 1 30. As used herein, the metadata may include file types, such as image files, documents, and the like, as well as sizes, storage formats, document owners, document groups, authors, and the like. The metadata database 132 may also store custom metadata, such as a series of key-value properties arbitrarily assigned by the users to each document.
[0012] For files that have text, or text descriptions, key words can also be generated for files, for example, using text processing techniques to identify the most common words, concepts, and the like. A search engine 134 can be used to search for metadata or a keyword in the metadata database 132, or subsets thereof, for example, to identify files that have the highest correlation with that word or concept. A recommender engine 1 36 can be used to identify files that have been accessed by users that are similarly situated, such as files 122 or files 124 having similar type and content. In this simplified example seven files 122 and 124 would be reported.
However, in actual situations, the number of files will likely be much higher, for example, several hundred or several thousand.
[0013] In this example, the recommendations provided by the recommender engine 136 can be further narrow by making use of the search engine 134 to search the metadata database 132 for file system metadata, file contents, or both. In this example, the recommender engine 136 combines regular search algorithms with recommender systems to provide better and more accurate results. Thus, searching for specific content in a file system with billions of files can include a double search or a search within a search. For example, a first search with keywords or other metadata, and a second search, based on similarity calculations for meaningful results inside the search results. The application of recommender systems to these search results will help users reduce the time to filter out noise in the keyword search results.
[0014] Fig. 2 is an example process flow diagram of a method 200 for a combined keyword and similarity search. The method begins at block 202 with a user entering search conditions. These conditions may include system metadata, custom metadata, and keywords related to file contents. For example, in a medical PACS (Picture Archiving and Communication System) objects may be tagged with metadata like Patient Name, Patient Sex, Study Date, and Type of Study. At block 204, the search is run, for example, on a metadata database, using these metadata
and others like file size, last accessed time, keywords, and others. Although the search could be run on the file system, as discussed above, this may lead to long search times. The metadata database indexes the metadata of all objects in the file system, and may perform searches 100,000 times faster than a regular find command on the file system.
[0015] Once a preliminary result set 206 is returned by the search engine, at block 208, a recommender engine may apply a file-based nearest neighbor recommendation to sort the preliminary results set. This is based on the activity of similar users on the file systems, which may be determined at block 210, prior to the search.
[0016] The similarity calculation represented in block 210 may use the mapping detailed in Table 1 . When the recommender system starts, it "learns" about the behavior of users in the file system assigning a value for each type of activity a user performs on a file. This information is maintained in a table, for example, in the metadata database or a similarity database, and can be used for the file based recommendations.
[0017] Table 1 : Mapping between file system activities and scores
File based storage systems
Open file 3
Display file properties 2
No activity on the file 1
[0018] The recommender system first processes the results returned by the search engine by sorting the results by an interest defined, for example, by previous activity. The system may assume that the user will be interested in files he has already worked with, so they will be the first in the results list. The files browsed by the user, e.g., when a user selects a file and display the file properties, may be appended to the results list. The recommender system takes the rest of the result set and tries to predict how the user will rank those results. The prediction can be based on file-based nearest neighbor recommendation, e.g., if there are files similar to the ones the user already interacted with, those will be ranked high in the result set. The similarity of files is calculated at block 212, and may be performed prior to the search.
[0019] The similarity of files in the recommender system may be calculated using the adjusted cosine similarity algorithm, among others. For example, the similarity
(sim) between two objects x and y is defined as: sim(x, y) = with "." being the dot product of vectors, and |x| and |y| representing the Euclidian length of the vectors. The values are extracted from the usage matrix stored in the metadata database with the file system activity, as shown in Table 2. Each vector is defined as the set of activities for each object. For example the vector x for Object 1 is defined in this case as (3, 2, 2, 1 , 1 ).
[0020] Table 2: User-Object activity matrix
Object 1 Object 2 Object 3 Object 4 Object 5 Object 6
User A 3 2 1 1 2 ?
User B 2 3 3 3 3 3
User C 2 1 2 1 1 1
User D 1 1 1 1 1 1
User E 1 1 1 2 2 3
[0021] This table is adjusted by subtracting the average value for each user in the Matrix. For example, the average value for User A for Objects 1 , 2, 3, 4, 5 is 1 .8, so the line for user A will be as shown in Table 3.
[0022] Table 3: Average value for objects for User A
Object 1 Object 2 Object 3 Object 4 Object 5 Object 6
User A 1 .2 0.2 -0.8 -0.8 0.2 ?
[0023] In this example, the sim between Object 6 and Object 4 is 0.89. The sim values range between -1 and 1 , with 1 denoting perfect match or strong similarity. After the similarities are calculated, the recommender system predicts the action User A will take on Object 6. A prediction close to 3 means the User will probably open the file, 2 means the user will inspect the file metadata, and 1 means the User will probably ignore the file. This prediction will be used to enhance the search results by categorizing the results based on this probability. To reduce the amount of resources used to calculate similarities between huge numbers of objects, the
matrix will take only into account activity from a reduced set of users and find the users with similar activity in the system. The calculation of this reduced set of users may be used for collaborative recommendations.
[0024] At block 214, the sorted list of results may be enhanced by the addition of a list of similar files collected during this step, for example, using the file similarity results from block 212 and user similarity calculated at block 21 0. The list will contain files based on similarity by activity, and present the users with files that other users in the group are using, which the user might be interested as well. This will produce a list of files recently used by similar user.
[0025] For the collaborative recommendations made in block 214, e.g., recommendations based on activity from other users, user similarity is calculated at block 21 0 only between users belonging to the same user group, for example, as defined in groups in POSIX file systems or Windows Active Directory groups. To find the correlation score between two users, the system calculates the Pearson's coefficient (r), which shows the degree of relationship between two variables, as shown in Table 4. The Pearson's coefficient will have a value between -1 and 1 , wherein each extreme represents a perfect positive or negative correlation, respectively. In the present example, the two variables may represent the activity scores for the two users. The more similar activity the users have on the same files, e.g., they open the same files, display properties on the same files, and ignore the same files, the higher the Pearson's coefficient. A value for the Pearson's coefficient of +1 implies that the users performed identical activities in the file system. A value of 0 denotes the absence of linear relationship. Negative values for the Pearson's coefficient scores means that most files opened by one user are ignored by the second user.
[0026] At block 210, the recommender system may calculate the coefficient r, e.g., the Pearson's coefficient, between all members of a group. After these coefficients are calculated, it selects the top N users with higher coefficient r. After constructing the list of similar users, the system then selects the files that those users have recently opened and at block 214 presents them to the user as files added to the list of recommendations. For example, if a number of users from the Human Resources department are reading a document about an important change in the employees' benefits, this document will be displayed as added to the
preliminary results set for a similar user in the department that has not read the file yet.
[0027] Table 4: Scores and Pearson's coefficient for Users A and B
User A User B
scores scores
File A 3 3
File B 3 3
File C 3 2
File D 2 1
File E 3 3
File F 3 3
File G 2 1
File H 2 2
File l 1 1
File J 1 1
File K 1 1
File L 1 1
File M 2 3
File N 3 3
File O 2 1
File P 1 3
File Q 3 3
File R 3 3
Correlation 0.688333
coefficient
(r)
[0028] Many organizations implement security policies where files can be only viewed by specific people or groups. For these cases the recommender system may implement security options to reflect the organization policies. Even though recommendations are anonymous, e.g., the system recommends files used by similar users but does not display any user information, users can opt out of the system. In this example, the activity of the user is not tracked and other users participating in the system will not receive any recommendation from them.
Individual files or group of files can also be excluded from the system.
[0029] The list of recommended files generated at block 214 may include files recently opened by some users in the group that are not related to the one selected by the user, e.g., some users from the group may be listening to an mp3 file stored in the storage system. To correct this, at block 21 6, the recommender system
calculates the similarity of the documents, for example, using a Jaccard/Tanimoto Index, among others.
[0030] The Jaccard/Tanimoto Index is used in statistics to compare similarity and diversity of sample sets. The sample sets are built for each document using the custom metadata assigned to the files. Given two files A and B, and their sets of custom metadata Sa and Sb respectively, the Jaccard/Tanimoto index is calculated with the following equation: T = , , |Sa"Sb l with |Sa| = number of elements in
|Sal+ |Sbl-|SanSbl
custom metadata set Sa, |Sb | the number of elements in custom metadata set Sb and |Sa n Sb | the number of elements in the intersecting set (the custom metadata they have in common). The closer the index T to 1 , the more similar both files are in terms of custom metadata. A T index of 0 denotes no proximity between the sets.
[0031] For filtering the list, identifying a first file that matches the search using custom metadata is the first step in the algorithm. Since this file will contain all the metadata that the user is looking for in the search, the algorithm will use it for filtering the collaborative recommendations. T is calculated twice for each pair of files, wherein a first file is the top file in the preliminary result search and the second is each file from the list produced by the Pearson Coefficient. One calculation of T is for the Key part of the key-value pair of the custom metadata and the second calculation is for the double tuple key-value.
[0032] The T index calculation for the key-value pair part will give the provenance index (Tp). The provenance index determines whether the files have similar keys in their key-value set, which indicates that the files were created by similar applications. For example a medical application for storing medical images will create a set of metadata keys for each file with keys like Patient Name, Patient Sex, Study Date, and Performing Physicians Name.
[0033] The T index calculation for the T key-value tuple will give the similarity index, (Ts). For example, a file A with custom metadata "PatientName=JohnDoe, PatientSex=M, StudyDate=1/1/201 3" and a file B with custom metadata
"PatientName=JohnDoe, PatienSex=M, StudyDate=01 /02/2013" will have a Tp =1 and a Ts = 0.5. These indexes indicate that the file have the same custom metadata keys but differ in the values. As the example also shows, more custom metadata for a file will result in a more accurate T index. In the semantics of the present example, this can be interpreted as "users who viewed file A also viewed...." Since file-based
systems can store billions of files, the recommender system limits the files used for correlation with the original file using only the files with recent activity among the users in the same group. Accordingly, the user, or an administrator, may select a threshold value for the correlation coefficient, below which files are omitted from the list of recommendations.
[0034] At block 218, the list of recommended files is presented to the user. The list may include hypertext links that allow the user to directly access the metadata for each file, or the file contents, by selecting options in the list.
[0035] The method 200 is not limited to the order or techniques described above. Any number of other correlation and filtering functions may be substituted for the Pearson's coefficient, the Jaccard/Tanimoto filter, or both. Further, any number of search engines can be used to build the preliminary result set.
[0036] Fig. 3 is an example process flow diagram of another method 300 for a combined similarity and keyword search. Like numbered items are as discussed with respect to Fig. 2. This is similar to the method 200 discussed with respect to Fig. 2, although the recommender search is run first in the example discussed with respect to Fig. 3. The method 300 starts at block 302 with the user entering a keyword and starting the search. At block 304, the recommender engine identifies files based on similarities between users and files, for example, as calculated in blocks 210 and 212. The identification may use the same techniques as described with respect to block 208 of Fig. 2. However, in block 304, all files identified as similar are entered into a list. At block 306, further files may be added to the list based, at least in part, on file similarity. This may be performed as described with respect to block 214 of Fig. 2. As noted, the files that are added may not be directly related to the search. Thus, at block 308, a filtering function, such as the
Jaccard/Tanimoto filter discussed with respect to block 21 6, may be used to remove files that have a similarity below a selected limit.
[0037] At block 310, the user may provide keywords, if they were not provided at block 302. For example, at block 302 the user may open a search screen and be presented with a list of recommendations based on similar users and the similarity with other files. At that time, the user may be presented with an option to enter metadata or keywords to narrow the list of files further. At block 314, a search engine may then run a metadata or keywords search on the preliminary results set in
a metadata database, as described with respect to bock 204. The final results set 316 may then be reported to the user.
[0038] The method 300 is not limited to the blocks shown in Fig. 3, but may include any number of other techniques. For example, the search may be iterative. In this example, after keywords are entered process flow may return from block 314 to block 304 to run through the similarity steps prior to presenting the recommended results set.
[0039] Fig. 4 is an example block diagram of a tangible, computer readable medium 400 that includes code configured to direct a processor 402 to execute combined searches. The tangible computer readable medium 400 may be a hard drive, an optical drive, a solid state drive, a thumb drive, a RAM drive, or any number of other tangible storage devices. The tangible computer readable medium 400 may be accessed by the processor 402 over a bus 404.
[0040] The tangible computer readable medium 400 may include a metadata database 406 that stores data about files in a data store. The data may include metadata, keywords, and results of similarity calculations as described above. A recommender engine 408 may be included to identify files for recommendations to users based, at least in part, on similarities between users and between files. A user similarity calculator 410 may be included to calculate the similarity between users, e.g., the likelihood that a user in a similar group or position would select similar files. A file similarity calculator 41 2 may be included to perform the same calculation for files. A filtering function, such as a Jaccard/Tanimoto filter, may be included in either or both of the similarity calculators 410 and 412. The tangible computer readable medium 400 may also include a search engine 414 that can search the metadata database 406 for metadata, keywords, or both. The search engine 414 may include the capability of directly searching the file structure, although it may be rarely used. The search engine 414 may also include language processing capabilities to allow the search engine 414 to locate documents that have similar words to the user entered metadata or keywords, allowing the search to progress even when words are synonyms, misspelled, and the like.
[0041] The code blocks are not limited to those shown, but may be organized in any number of ways while retaining the same functionality. For example, the filtering function may be set up as a separate module. Similarly, a separate coordination
module may be included to operate the functions. The coordination function, however, may be a part of the recommender engine 408.
[0042] While the present techniques may be susceptible to various modifications and alternative forms, the exemplary examples discussed above have been shown only by way of example. It is to be understood that the technique is not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the true spirit and scope of the appended claims.
Claims
1 . A method for locating files in a storage system, comprising:
calculating a similarity between a plurality of users;
calculating a similarity between a plurality of files;
obtaining a keyword; and
recommending a list of files to the user based, at least in part, on the similarity between the user and other users, the similarity between the files and other files, and the keyword.
2. The method of claim 1 , comprising creating a preliminary results set by: identifying a subset of the plurality of files based, at least in part, on activity of similar users;
adding files to the subset based, at least in part, on similarity to other files; and
performing a filtering function of the files in the subset to remove at least a portion of the files, creating the preliminary results set.
3. The method of claim 2, comprising the preliminary results set before a user conducts a search.
4. The method of claim 2, comprising performing a search in the preliminary results set to eliminate a portion of the results base, at least in part, on the keyword.
5. The method of claim 1 , comprising identifying a subset of the plurality of files as a preliminary results set based, at least in part, on a keyword entered by a user.
6. The method of claim 5, comprising
changing the number of files in the subset based, at least in part, on activity of similar users;
adding files to the subset based, at least in part, on similarity to other files; and
performing a filtering function of the files in the subset to remove at least a portion of the files, creating the preliminary results set.
7. The method of claim 1 , comprising searching for the keyword in a database, wherein the database comprises keywords generated from a plurality of files.
8. The method of claim 1 , comprising obtaining the keyword from metadata for a file.
9. The method of claim 1 , comprising obtaining the keyword from a uniform resource locator (URL) string.
10. A file locator system, comprising:
a processor; and
a storage system, wherein the storage system comprises code configured to direct the processor to:
determine a similarity between a plurality of users;
determine a similarity between a plurality of files;
obtain a keyword;
identify a subset of plurality of files based, at least in part, on a
similarity between the user and other users;
identify a subset of the plurality of files based, at least in part, on the keyword; and
present a listing of the subset of the plurality of files.
1 1 . The file locator system of claim 10, comprising a storage attached network (SAN) device.
12. The file locator system of claim 10, comprising a storage manager configured to recommend files in a large scale storage system.
13. The file locator system of claim 10, comprising a server farm.
14. A tangible, computer readable medium comprising instructions that, when executed by a processor, direct the processor to:
calculate a similarity between a plurality of users;
calculate a similarity between a plurality of files;
obtain a keyword; and
recommend a list of files to the user based, at least in part, on the similarity between a user and other users, the similarity between a file and other files, and the keyword.
15. The tangible, computer readable medium of claim 14, comprising instructions to direct a processor to add files to a keyword search based, at least in part, on a similarity between a user and other users, a similarity between files and other files, or both.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/012028 WO2015108530A1 (en) | 2014-01-17 | 2014-01-17 | File locator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/012028 WO2015108530A1 (en) | 2014-01-17 | 2014-01-17 | File locator |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015108530A1 true WO2015108530A1 (en) | 2015-07-23 |
Family
ID=53543289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2014/012028 WO2015108530A1 (en) | 2014-01-17 | 2014-01-17 | File locator |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015108530A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010020238A1 (en) * | 2000-02-04 | 2001-09-06 | Hiroshi Tsuda | Document searching apparatus, method thereof, and record medium thereof |
US20050154723A1 (en) * | 2003-12-29 | 2005-07-14 | Ping Liang | Advanced search, file system, and intelligent assistant agent |
EP1826692A2 (en) * | 2006-02-22 | 2007-08-29 | Copernic Technologies, Inc. | Query correction using indexed content on a desktop indexer program. |
US20090287650A1 (en) * | 2006-06-27 | 2009-11-19 | Lg Electronics Inc. | Media file searching based on voice recognition |
US7930301B2 (en) * | 2003-03-31 | 2011-04-19 | Microsoft Corporation | System and method for searching computer files and returning identified files and associated files |
-
2014
- 2014-01-17 WO PCT/US2014/012028 patent/WO2015108530A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010020238A1 (en) * | 2000-02-04 | 2001-09-06 | Hiroshi Tsuda | Document searching apparatus, method thereof, and record medium thereof |
US7930301B2 (en) * | 2003-03-31 | 2011-04-19 | Microsoft Corporation | System and method for searching computer files and returning identified files and associated files |
US20050154723A1 (en) * | 2003-12-29 | 2005-07-14 | Ping Liang | Advanced search, file system, and intelligent assistant agent |
EP1826692A2 (en) * | 2006-02-22 | 2007-08-29 | Copernic Technologies, Inc. | Query correction using indexed content on a desktop indexer program. |
US20090287650A1 (en) * | 2006-06-27 | 2009-11-19 | Lg Electronics Inc. | Media file searching based on voice recognition |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11663254B2 (en) | System and engine for seeded clustering of news events | |
CN108154395B (en) | Big data-based customer network behavior portrait method | |
US10031975B2 (en) | Presentation of search results based on the size of the content sources from which they are obtained | |
US9448992B2 (en) | Natural language search results for intent queries | |
US7912816B2 (en) | Adaptive archive data management | |
US20070265996A1 (en) | Search engine methods and systems for displaying relevant topics | |
AU2010253866A1 (en) | Merging search results | |
EP2823410A1 (en) | Entity augmentation service from latent relational data | |
CN113297457B (en) | High-precision intelligent information resource pushing system and pushing method | |
US9552415B2 (en) | Category classification processing device and method | |
Deng et al. | Information re-finding by context: A brain memory inspired approach | |
AU2018313274B2 (en) | Diversity evaluation in genealogy search | |
US8224858B2 (en) | Methods and system for information storage enabling fast information retrieval | |
CN116431895A (en) | Personalized recommendation method and system for safety production knowledge | |
US11366814B2 (en) | Systems and methods for federated search with dynamic selection and distributed relevance | |
WO2015108530A1 (en) | File locator | |
Khelghati | Deep web content monitoring | |
Manjula et al. | An novel approach to extract the content retrieval with the image perception using collaborative community oriented sifting (CCOS) | |
Khan et al. | Model-based diversification for sequential exploratory queries | |
EP2090992A2 (en) | Determining words related to a given set of words | |
US20230409996A1 (en) | Method and apparatus for retrieving relevant records from a database using prediction models | |
Wang et al. | Enterprise search with development for network management system | |
Sirisha et al. | Unstructured Data: Various approaches for Storage, Extraction and Analysis | |
Jain et al. | A Survey on Relevant Text Data Searching Techniques and Feature in Cloud | |
CN114780681A (en) | Audit scheme recommendation method and device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14878706 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14878706 Country of ref document: EP Kind code of ref document: A1 |