2016-09-21 3 views
1

Ich habe einen Azure Search-Index, der zufällige Automarken enthält. Eines dieser Datenelemente ist für Skoda, aber es beginnt mit einem "Š".Die facettierte Suche sortiert die Daten nicht korrekt mit Š.

Als ich experimentierte mit der Abfrage dieser Daten als facettierte Suche, wollte ich die Marken bestellt. Hier ist mein prototpye Code für das zu tun:

var queryResults = searchIndexClient.Documents 
    .Search(
     string.Empty, 
     new SearchParameters 
     { 
      Facets = new List<string> 
      { 
       "make,count:1000,sort:value" 
      }, 
      Top = 0 
    }); 

In den zurückgegebenen Daten werden die Marken in der Tat richtig bestellt, aber ‚Škoda‘ erscheint am unteren Ende der Liste. Ich vermute also, dass ich etwas tun muss, damit Azure Search beim Sortieren mit dem Unicode-Zeichen umgehen kann, aber ich habe keine Ahnung, was ich tun muss.

EDIT:

I Postman verwendet, um die serch Index abfragen, die gleichen facettierte Suche params, wie oben erwähnt:

docs?$select=make&facet=make,count:1000,sort:value

Hier ist eine getrimmte Teilmenge der JSON, die zurückgegeben wurde, was zeigt škoda erscheint an der Unterseite. Beachten Sie, dass wir in unseren Testdaten auch skoda in der Liste haben, die korrekt ist - beide erscheinen in den Quellindexdaten.

{ 
    "@search.facets": { 
    "[email protected]": "#Collection(Microsoft.Azure.Search.V2015_02_28.QueryResultFacet)", 
    "make": [ 
     { 
     "count": 178, 
     "value": "rover" 
     }, 
     { 
     "count": 1, 
     "value": "rover/austin" 
     }, 
     { 
     "count": 1, 
     "value": "rover mg" 
     }, 
     { 
     "count": 529, 
     "value": "saab" 
     }, 
     { 
     "count": 3835, 
     "value": "seat" 
     }, 
     { 
     "count": 3851, 
     "value": "skoda" 
     }, 
     { 
     "count": 817, 
     "value": "smart" 
     }, 
     { 
     "count": 12934, 
     "value": "volkswagen" 
     }, 
     { 
     "count": 3922, 
     "value": "volvo" 
     }, 
     { 
     "count": 1, 
     "value": "vw scirocco gti" 
     }, 
     { 
     "count": 1, 
     "value": "w67 6olf" 
     }, 
     { 
     "count": 3, 
     "value": "westfield" 
     }, 
     { 
     "count": 2, 
     "value": "wiesmann" 
     }, 
     { 
     "count": 3, 
     "value": "wolseley" 
     }, 
     { 
     "count": 1, 
     "value": "zbmw" 
     }, 
     { 
     "count": 5, 
     "value": "škoda" 
     } 
    ] 
    } 
} 
+0

Es könnte ein Fehler sein. Würde es Ihnen etwas ausmachen, ein Beispiel für die Facettenergebnisse zu geben, bei denen Škoda falsch sortiert ist? –

+0

@BruceJohnston Ich habe meine Frage mit einigen Beispieldaten bearbeitet. Wenn Sie weitere Informationen benötigen, bitte rufen Sie mich an. –

+1

Danke. Wir werden uns darum kümmern und Sie mit unseren Ergebnissen auf dem Laufenden halten. –

Antwort

1

Leider ist dies eine bekannte Einschränkung in Azure Search. Facettenwerte werden in binärer Reihenfolge sortiert. Die Kuriosität, die du beobachtet hast, škoda erscheint am Ende der Liste, wird erwartet. Wir planen, in diesem Fall einen erweiterten Kollationsalgorithmus zu integrieren, haben aber noch kein festes Datum. Bitte helfen Sie uns bei der Priorisierung, indem Sie eine Anfrage an unsere user voice erstellen.

Derzeit besteht die einzige Möglichkeit zur Problemumgehung darin, die Facettenwerte vorzuverarbeiten und normalisierte Zeichenfolgen (Kleinbuchstaben und Diakritika entfernt) in der Spalte zu speichern.

Wir entschuldigen uns für die Unannehmlichkeiten. Wir werden Sie informieren, sobald wir Fortschritte machen.

Danke.

Nate

+0

Danke für die Klärung der Situation. Sehr geschätzt. –

Verwandte Themen