Die Suche in den Benutzerprofilen funktioniert nicht auf lokalisierten Werten im SharePoint 2013
-
10-12-2019 - |
Frage
Suche in den Benutzerprofilen funktioniert nicht auf lokalisierten Werten im SharePoint 2013
hi! Ich aus Russland und gestern versuchte ich, Benutzerprofile von Russisch zu suchen. Beispielsweise ist mein Nachname мурадов und der Kontoname ist Demo \ Muradov. Ich kann mich selbst finden, indem ich "Demo", "Muradov", suche, aber ich kann mich nicht von "Мурадов" finden.
Für die Suche, die ich verwendet habe, Verwalten von Benutzerprofilen von der Seite der Zentraladministration und UserProfileManager.Search () -Methode vom Code. Ich beschloss, herauszufinden, warum es passiert.
ich wurde dekompile microsoft.office.server.userprofiles montage and saw, dass userprofilemanager.search () -Methode die gespeicherte Prozedur
Benutzer verwalten Profile, die diese Prozedur verwendet werden (ich habe es mit SQL Server Profiler überprüft). Ich habe SQL Server-Profiler verwendet und ein Verfahrensanruf gefunden, es scheint wie zu sein generasacodicetagpre.
und es war interessant, weil generasacodicetagpre.
i Offene Code für dbo.proc_profile_searchuser und beginnen Sie mit der Untersuchung ... und fand, dass es eine Tabelle gibt
Ich dachte, dieses Problem in der Collation von SQL Server (es war latin1_General_ci_as_ks_ws), und ich entferne SQLServer und installieren mit der Collation cyrillic_general_ci_as. Alle SharePoint-Datenbanken wurden jedoch mit Latin1_General_CI_AS_KS_WS-Collation erstellt.
Jetzt bin ich festgefahren. Ich habe keine Ahnung, was genau ich damit tun sollte, und ich brauche Hilfe.
Lösung
I have found bug related with this behavior. Steps to fix them:
- Open
[dbo].[proc_Profile_SetSearchUserTerms]
procedure - Check
@changedValues
declaration (varchar) - Alter procedure with
DECLARE @changedValues TABLE (PropertyValue nvarchar(255), Direction int)
- Be happy.