2016-11-29 3 views
0

Wenn ein Benutzer ein Filterfeld eingibt, möchte ich eine automatische Vervollständigung anzeigen, die Vorschläge enthält.Azure Search Suggester - Warum doppelte Werte zurückgeben?

Ich versuche Azure Search Suggester dafür zu verwenden, aber es gibt doppelte Werte zurück?

ex:

POST /indexes/assets/docs/suggest?api-version=2016-09-01 HTTP/1.1 
Host: xxx.search.windows.net 
api-key: xxx 
Content-Type: application/json 

{ 
    search: 'bank', 
    suggesterName: 'sg', 
    top:5, 
    searchFields: "accountName", 
    select: 'accountName' 
} 

Was zurückgegeben wird:

{ 
    "@odata.context": "https://xxx.search.windows.net/indexes('assets')/$metadata#docs(accountName)", 
    "value": [ 
    { 
     "@search.text": "CAIXA BANK", 
     "accountName": "CAIXA BANK" 
    }, 
    { 
     "@search.text": "CAIXA BANK", 
     "accountName": "CAIXA BANK" 
    }, 
    { 
     "@search.text": "BANK OF AMERICA", 
     "accountName": "BANK OF AMERICA" 
    }, 
    { 
     "@search.text": "BANK OF AMERICA", 
     "accountName": "BANK OF AMERICA" 
    }, 
    { 
     "@search.text": "BANK OF AMERICA", 
     "accountName": "BANK OF AMERICA" 
    } 
    ] 
} 

Ich hatte erwartet, das Ergebnis enthält 5 verschiedene accountname, nicht wiederholt Werte für die einzelnen Dokumente, die die gleiche account mit ...

Ich bin etwas fehlt hier?

EDIT

Es scheint, der erwartete Verhalten, Vorschlag zurückgeben verschiedene Dokumente zu sein ... Es macht keinen Sinn für mich, wenn ich Dokumente abrufen möchte würde ich eine Abfrage tun, keinen Vorschlag.

Was sind die Anwendungsfälle von Vorschlägen, wenn wir sie nicht zum Auffüllen von Autocomplete-Feldern verwenden können?

+0

Mögliche Duplikat [Distinct Werte in Azure Suchvorschläge?] (Http://stackoverflow.com/questions/32207000/distinct-values-in-azure-search-suggestions) –

Antwort

3

Wie der Link im Kommentar gezeigt hat, schlägt die Suggest API in Azure Search vor, dass Dokumente keine Begriffe abfragen. Suggest API gibt Dokument-IDs zurück, die dem übereinstimmenden Feld zugeordnet sind. Häufige Anwendungsfälle wären Zeitungsartikel, deren Titel übereinstimmen oder Produkte, deren Namen mit den gesuchten Begriffen/Phrasen übereinstimmen.

Einige Kunden verwenden die Suggest API zum automatischen Vervollständigen von Suchfeldern. In solchen Fällen empfehlen wir, das zurückgegebene Feld auf der Clientseite zu deduplizieren oder einen sekundären Index zu verwenden. Die Funktion ist jedoch nicht dafür ausgelegt. Wir arbeiten tatsächlich an einer neuen Funktion, die Suchbegriffe aus dem Korpus für Autovervollständigungszwecke schlägt. Ich werde den Thread aktualisieren, wenn die Funktion verfügbar ist.

Nate

+0

Wenn API gibt vorschlagen Dokumente, ich verstehe immer noch nicht, wie unterscheidet es sich dann von der Search API? Deduplizierung im Aufrufer macht den Top-Parameter nutzlos ... zB: mit Top: 20 und alle zurückgegebenen Dokumente haben den gleichen Wert ... –

+0

Froh, dass daran gearbeitet wird. Der Anwendungsfall ist einfach: Denken Sie an Google-Vorschläge ... Begriffe werden zurückgegeben, nicht bestimmte Seiten. –

+0

Sie sind eigentlich nicht zu unterschiedlich. Suggest API ist eine spezielle Version von Search, die speziell auf häufig verwendete typ-ahead-ähnliche Szenarien zugeschnitten ist, in denen gesuchte Begriffe nur teilweise ausgefüllt sind und Antwortzeiten wichtig sind. Sie können Suggest API mit Search mit benutzerdefinierten Analyseprogrammen ziemlich genau nachahmen (https://docs.microsoft.com/en-us/rest/api/searchservice/custom-analyzers-in-azure-search), außer es ist bereits in Suggest API für Sie erledigt. –

Verwandte Themen