moreLikeThis (Vorschau) in Azure KI Search

Wichtig

Dieses Feature befindet sich in der Public Preview-Phase und unterliegt zusätzlichen Nutzungsbedingungen. Die Vorschau-REST-API unterstützt dieses Feature.

moreLikeThis=[key] ist ein Abfrageparameter in der API zum Durchsuchen von Dokumenten, über den Dokumente gesucht werden, die dem mit dem Dokumentschlüssel angegebenen Dokument ähneln. Beim Ausführen einer Suchanforderung mit moreLikeThis wird eine Abfrage mit Suchbegriffen generiert, die aus dem angegebenen Dokument extrahiert werden und das Dokument am besten beschreiben. Anhand der generierten Abfrage wird dann die Suchanforderung erstellt. Der Parameter moreLikeThis kann nicht mit dem Suchparameter search=[string] verwendet werden.

Standardmäßig werden die Inhalte aller durchsuchbaren Felder auf oberster Ebene berücksichtigt. Wenn Sie stattdessen bestimmte Felder angeben möchten, können Sie den Parameter searchFields verwenden.

Der Parameter moreLikeThis wird für komplexe Typen nicht unterstützt, und das Vorhandensein komplexer Typen wirkt sich auf die Abfragelogik aus. Wenn der Index ein komplexer Typ ist, müssen Sie searchFields auf die durchsuchbaren Felder der obersten Ebene festlegen, die moreLikeThis durchläuft. Verfügt der Index beispielsweise über ein durchsuchbares field1 vom Typ Edm.String und field2, einem komplexen Typen mit durchsuchbaren Unterfeldern, muss der Wert von searchFields auf field1 festgelegt werden, um field2 auszuschließen.

Beispiele

In allen folgenden Beispielen wird das Beispiel für Hotels aus Schnellstart: Erstellen eines Suchindexes im Azure-Portal verwendet.

Einfache Abfrage

Mit der folgenden Abfrage werden Dokumente gesucht, deren Beschreibungsfelder dem Feld des Quelldokuments entsprechend der Angabe durch den Parameter moreLikeThis am ähnlichsten sind:

GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2020-06-30-Preview

In diesem Beispiel sucht die Anforderung nach Hotels, die mit HotelId 29 vergleichbar sind. Sie können MoreLikeThis auch mithilfe von HTTP POST (anstelle von HTTP GET) aufrufen:

POST /indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
    {
      "moreLikeThis": "29",
      "searchFields": "Description"
    }

Filter anwenden

MoreLikeThis kann mit anderen allgemeinen Abfrageparametern wie $filter kombiniert werden. Beispielsweise kann die Abfrage auf Hotels mit der Kategorie „Budget“ und einer Bewertung von mindestens 3,5 beschränkt werden:

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&api-version=2020-06-30-Preview

Auswählen von Feldern und Einschränken der Ergebnisse

Mit dem Selektor $top kann die Anzahl von Ergebnissen eingeschränkt werden, die in einer Abfrage vom Typ MoreLikeThis zurückgegeben werden sollen. Außerdem können Felder mit $select ausgewählt werden. Hier werden die drei passendsten Hotels zusammen mit ihrer ID, ihrem Namen und ihrer Bewertung ausgewählt:

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&$top=3&$select=HotelId,HotelName,Rating&api-version=2020-06-30-Preview

Nächste Schritte

Sie können einen beliebigen REST-Client für diese Übung verwenden.