locked
Multilingual terms, managed properties and SharePoint Search doesn't work RRS feed

  • Question

  • We have a SharePoint 2010 site which has been setup multilingual in German and English. This site includes a searchpage also in German and English. We use managed metadata from the Term Store to tag any documents in this site.

    The default language of the Term Store are German additionally all terms were translated to English.

    In the document libraries the multilingual works fine. In the Taxonomy Hidden List all terms are bilingual.

    But in the search, the multilingual doesn't work.

    We have created some managed properties (mapped with the crawled properties of the managed metadata columns) to fetch this properties in the Refinement Panel and in the Core Result Webpart. These are displayed as refiner and in results, however, only in German regardless of the chosen language.

    Is this a fundamental problem of SharePoint 2010 Search? Obviously, multilingual managed metadata (fetched as managed properties) are not supported by search…or is there any way?

    Many thanks

    Daniel

    Tuesday, September 18, 2012 7:35 AM

All replies

  • Hi Daniel,

    Have you tried setting preferencs, Please have a look at this article Multilinual Search In SharePoint


    Thanks.... ________________ Baba (MCTS, MCPD)

    Tuesday, September 18, 2012 8:27 AM
  • Hi Babasaheb,
    thank you for your answer.

    Yes, I've tried.
    When I choose English as query language the custom managed properties in the Refinement Panel and in Core Result are in German. The query language is not considered.
    Thanks, Daniel

    Tuesday, September 18, 2012 8:56 AM
  • Hi Daniel,

    Did you find a solution for the multilingual search in taxonomy?

    I've tried something by extending CoreResultsWebpart and overiddes GetXPathNavigator(string viewPath).
    I replace the word of the user query by the id of the term but it's works correctly only when you have just one word in the query and just one term starts with this word:

    -----------------------------------------
    QueryManager queryManager = SharedQueryManager.GetInstance(this.Page).QueryManager;
    string[] words = queryManager.UserQuery.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
    string id = string.Empty;
    string newQuery = queryManager.UserQuery;
    foreach (string word in words)
    {
    id = GetTermId(word);
    newQuery.Replace(word, id);
    }
    queryManager.UserQuery = newQuery;
    -----------------------------------------

    I have to find another solution because it's not efficient for a search engine.

    For information, I use SP 2010 Server Standard.

    Thanks 

    Fabien
    Monday, January 28, 2013 1:03 AM