IP Library › Granted Patent US 11,386,131
Granted Patent B2
US 11,386,131 · App. 15/991,104 · Granted Jul 12, 2022

System and method for multi-language search

Inventors: Victor Cazin (Paris, FR); Laetitia Gabet (Antony, FR); Edouard Hamonière (Paris, FR); Christophe Pierret (Sèvres, FR)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F16/3337G06F16/334G06F16/3334G06F16/38G06F40/40G06F16/951
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,386,131
App. No.
15/991,104
Granted
Jul 12, 2022
Kind
B2
Abstract

Systems and methods for providing a multi-language search include a query receiver that receives a search query from a search user interface that includes a search term in a first language. A search results evaluator determines whether execution of the search query will produce a sufficient number of search results. A cross-language search manager, in response to determining that the processing of the search query will not produce the sufficient number of search results, obtains a first translated version of the search term, requests that a search be executed by a search engine based on at least the search term and the first translated version of the search term, receives a set of search results from the search engine based on the search; and returns the set of search results to the search user interface.

Claims (73)

1. A system, comprising:

one or more memory devices that store executable program instructions; and

one or more processors operable to access the memory device(s) and to execute the executable program instructions, the executable program instructions comprising:

a query receiver configured to receive a search query from a search user interface, the search query comprising a search term in a first language;

a search results evaluator configured to determine whether execution of the search query will produce a predetermined number of search results by comparing a previously-obtained number of search results obtained through a prior execution of the search query to a predetermined number of desired search results; and

a cross-language search manager configured to, in response to determining that the execution of the search query will not produce the predetermined number of search results:

obtain a first translated version of the search term from a cache that stores translated search terms previously obtained from a network-accessible remote translation service as a part of a prior execution of the search query, the first translated version of the search term being in a second language that is different from the first language;

request that a search be executed by a search engine based on at least the search term and the first translated version of the search term;

receive a set of search results from the search engine based on the search; and

return the set of search results to the search user interface.

2. The system of claim 1 , further comprising:

a search query transformer that is configured to transform the search query from a non-localized form to a localized form by identifying different language versions of a metadata field to which the search term will be applied and assigning search relevancy weights to each of the different language versions of the metadata field;

wherein the search results evaluator is configured to determine whether execution of the localized form of the search query will produce the predetermined number of search results.

3. The system of claim 2 , wherein the search query transformer is configured to transform the search query from the non-localized form to the localized form by:

identifying a preferred language associated with the search query; and

sending an identifier of a scoring profile to be used by the search engine, the scoring profile being selected from among a plurality of scoring profiles based on the preferred language associated with the search query, the selected scoring profile identifying the search relevancy weights to be applied to each of the different language versions of the metadata field.

4. The system of claim 2 , wherein the search query transformer is configured to transform the search query from the non-localized form to the localized form by:

identifying a preferred language associated with the search query; and

assigning the search relevancy weights to each of the different language versions of the metadata field by including in the localized form of the search query a search relevancy weight for each combination of the search term and each of the different language versions of the metadata field.

5. The system of claim 1 , wherein the search results evaluator is configured to determine whether the execution of the search query will produce the predetermined number of search results by:

requesting that the search engine execute the search query; and

determining a number of search results in a set of search results received from the search engine based on the execution of the search query.

6. The system of claim 1 , wherein the cross-language search manager is further configured to:

obtain a second translated version of the search term from the network-accessible remote translation service, the second translated version of the search term being in a third language that is different from the first language and the second language; and

request that the search be executed by the search engine based on the search term, the first translated version of the search term, and the second translated version of the search term.

7. The system of claim 6 , wherein the cross-language search manager is further configured to:

terminate at least one of the obtaining, requesting, receiving or returning operations performed thereby in response to determining that a set of search results returned from a search executed by the search engine based on the search term and the first translated version of the search term has already produced the predetermined number of search results.

8. A method, comprising:

receiving a search query from a search user interface, the search query comprising a search term in a first language;

determining whether execution of the search query will produce a predetermined number of search results by comparing a previously-obtained number of search results obtained through a prior execution of the search query to a predetermined number of search results; and

in response to determining that the execution of the search query will not produce the predetermined number of search results:

obtaining a first translated version of the search term from a cache that stores translated search terms previously obtained from a network-accessible remote translation service as a part of a prior execution of the search query, the first translated version of the search term being in a second language that is different from the first language;

requesting that a search be executed by a search engine based on at least the search term and the first translated version of the search term;

receiving a set of search results from the search engine based on the search; and

returning the set of search results to the search user interface.

9. The method of claim 8 , further comprising:

transforming the search query from a non-localized form to a localized form by identifying different language versions of a metadata field to which the search term will be applied and assigning search relevancy weights to each of the different language versions of the metadata field;

wherein determining whether execution of the search query will produce the predetermined number of search results comprises determining whether execution of the localized form of the search query will produce the predetermined number of search results.

10. The method system of claim 9 , wherein transforming the search query from the non-localized form to the localized form comprises:

identifying a preferred language associated with the search query; and

sending an identifier of a scoring profile to be used by the search engine, the scoring profile being selected from among a plurality of scoring profiles based on the preferred language associated with the search query, the selected scoring profile identifying the search relevancy weights to be applied to each of the different language versions of the metadata field.

11. The method of claim 9 , wherein transforming the search query from the non-localized form to the localized form comprises:

identifying a preferred language associated with the search query; and

assigning the search relevancy weights to each of the different language versions of the metadata field by including in the localized form of the search query a search relevancy weight for each combination of the search term and each of the different language versions of the metadata field.

12. The method of claim 8 , wherein the method further comprises obtaining a second translated version of the search term from the network-accessible remote translation service, the second translated version of the search term being in a third language that is different from the first language and the second language; and

wherein the requesting that the search be executed by the search engine comprises requesting that the search be executed by the search engine based on the search term, the first translated version of the search term, and the second translated version of the search term.

13. The method of claim 12 , further comprising:

terminating at least one of the obtaining, requesting, receiving or returning steps in response to determining that a set of search results returned from a search executed by the search engine based on the search term and the first translated version of the search term has already produced the predetermined number of search results.

14. A computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processing circuit of a computing device, perform a method, the method comprising:

receiving a search query from a search user interface, the search query comprising a search term in a first language;

determining whether execution of the search query will produce a predetermined number of search results by comparing a previously-obtained number of search results obtained through a prior execution of the search query to a predetermined number of desired search results; and

in response to determining that the execution of the search query will not produce the predetermined number of search results:

obtaining a first translated version of the search term from a cache that stores translated search terms previously obtained from a network-accessible remote translation service as a part of a prior execution of the search query, the first translated version of the search term being in a second language that is different from the first language;

requesting that a search be executed by a search engine based on at least the search term and the first translated version of the search term;

receiving a set of search results from the search engine based on the search; and

returning the set of search results to the search user interface.

15. The system of claim 1 , wherein the previously-obtained number of search results comprises a single numerical value.

16. The system of claim 1 , wherein the previously-obtained number of search results comprises a plurality of search results.

17. The method of claim 8 , wherein the previously-obtained number of search results comprises a single numerical value.

18. The method of claim 8 , wherein the previously-obtained number of search results comprises a plurality of search results.

19. The computer-readable storage medium of claim 14 , wherein the previously-obtained number of search results comprises a single numerical value.

20. The computer-readable storage medium of claim 14 , wherein the previously-obtained number of search results comprises a plurality of search results.

21. The computer-readable storage medium of claim 14 , wherein the method further comprises:

transforming the search query from a non-localized form to a localized form by identifying different language versions of a metadata field to which the search term will be applied and assigning search relevancy weights to each of the different language versions of the metadata field;

wherein determining whether execution of the search query will produce the predetermined number of search results comprises determining whether execution of the localized form of the search query will produce the predetermined number of search results.

22. The computer-readable storage medium of claim 21 , wherein transforming the search query from the non-localized form to the localized form comprises:

identifying a preferred language associated with the search query; and

sending an identifier of a scoring profile to be used by the search engine, the scoring profile being selected from among a plurality of scoring profiles based on the preferred language associated with the search query, the selected scoring profile identifying the search relevancy weights to be applied to each of the different language versions of the metadata field.

23. The computer-readable storage medium of claim 21 , wherein transforming the search query from the non-localized form to the localized form comprises:

identifying a preferred language associated with the search query; and

assigning the search relevancy weights to each of the different language versions of the metadata field by including in the localized form of the search query a search relevancy weight for each combination of the search term and each of the different language versions of the metadata field.

24. The computer-readable storage medium of claim 14 , wherein the method further comprises obtaining a second translated version of the search term from the network-accessible remote translation service, the second translated version of the search term being in a third language that is different from the first language and the second language; and

wherein the requesting that the search be executed by the search engine comprises requesting that the search be executed by the search engine based on the search term, the first translated version of the search term, and the second translated version of the search term.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2021
From: PIERRET, CHRISTOPHE
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 058063/0149 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2018
From: CAZIN, VICTOR; GABET, LAETITIA; HAMONIÈRE, EDOUARD
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045918/0731 →
Continuity (1)
Related Publication 20190370392A1 · Dec 5, 2019