Filterung und Facettensuche - Amazon Kendra

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Filterung und Facettensuche

Sie können die Suchergebnisse oder die Antwort der Query API verbessern, indem Sie Filter verwenden. Filter beschränken die Anzahl der Dokumente in der Antwort auf Dokumente, die direkt auf die Abfrage zutreffen. Um facettierte Suchvorschläge zu erstellen, verwenden Sie die boolesche Logik, um bestimmte Dokumentattribute oder Dokumente, die bestimmten Kriterien nicht entsprechen, aus der Antwort herauszufiltern. Sie können Facetten mithilfe des Facets Parameters in der API angeben. Query

Verwenden Sie AMAZON, um nach Dokumenten zu suchen, die Sie mit Amazon Kendra for Amazon Lex indexiert haben. KendraSearchIntent. Ein Beispiel für die Konfiguration Amazon Kendra mit Amazon Lex finden Sie unter Einen FAQ-Bot für einen Amazon Kendra Index erstellen. Sie können auch einen Filter für die Antwort bereitstellen, indem Sie AttributeFilter Dies ist der Abfragefilter in JSON bei der KonfigurationAMAZON.KendraSearchIntent. Um bei der Konfiguration einer Suchabsicht in der Konsole einen Attributfilter bereitzustellen, rufen Sie den Intent-Editor auf und wählen Sie Amazon Kendra Query aus, um einen Abfragefilter in JSON bereitzustellen. Weitere Informationen zu AMAZON.KendraSearchIntent finden Sie im Amazon Lex Dokumentationsleitfaden.

Facets

Facetten sind bereichsbezogene Ansichten einer Reihe von Suchergebnissen. Sie können beispielsweise Suchergebnisse für Städte auf der ganzen Welt bereitstellen, in denen Dokumente nach einer bestimmten Stadt gefiltert werden, der sie zugeordnet sind. Oder Sie können Facetten erstellen, um Ergebnisse eines bestimmten Autors anzuzeigen.

Sie können ein Dokumentattribut oder ein Metadatenfeld, das einem Dokument zugeordnet ist, als Facette verwenden, sodass Ihre Benutzer innerhalb dieser Facette nach Kategorien oder Werten suchen können. Sie können auch verschachtelte Facetten in den Suchergebnissen anzeigen, sodass Ihre Benutzer nicht nur nach einer Kategorie oder einem Feld, sondern auch nach einer Unterkategorie oder einem Unterfeld suchen können.

Das folgende Beispiel zeigt, wie Facetteninformationen für das benutzerdefinierte Attribut „Stadt“ abgerufen werden.

response=kendra.query( QueryText = query, IndexId = index, Facets = [ { "DocumentAttributeKey" : "City" } ] )

Sie können verschachtelte Facetten verwenden, um die Suche weiter einzugrenzen. Beispielsweise enthält das Dokumentattribut oder die Facette „Stadt“ einen Wert namens „Seattle“. Darüber hinaus enthält das Dokumentattribut oder die Facette "CityRegion" die Werte „North“ und „South“ für Dokumente, die „Seattle“ zugewiesen sind. Sie können verschachtelte Facetten mit ihrer Anzahl in den Suchergebnissen anzeigen, sodass Dokumente nicht nur nach Stadt, sondern auch nach einer Region innerhalb einer Stadt durchsucht werden können.

Beachten Sie, dass verschachtelte Facetten die Abfragelatenz beeinflussen können. Als allgemeine Regel gilt: Je mehr verschachtelte Facetten Sie verwenden, desto größer ist die potenzielle Auswirkung auf die Latenz. Andere Faktoren, die die Latenz beeinflussen, sind die durchschnittliche Größe der indizierten Dokumente, die Größe Ihres Indexes, hochkomplexe Abfragen und die Gesamtauslastung Ihres Index. Amazon Kendra

Das folgende Beispiel zeigt, wie Facetteninformationen für das benutzerdefinierte Attribut "CityRegion" als verschachtelte Facette innerhalb von „City“ abgerufen werden.

response=kendra.query( QueryText = query, IndexId = index, Facets = [ { "DocumentAttributeKey" : "City", "Facets": [ { "DocumentAttributeKey" : "CityRegion" } ] } ] )

Facetteninformationen, wie z. B. die Anzahl der Dokumente, werden im Antwort-Array zurückgegeben. FacetResults Sie verwenden den Inhalt, um facettierte Suchvorschläge in Ihrer Anwendung anzuzeigen. Wenn das Dokumentattribut „Stadt“ beispielsweise die Stadt enthält, für die eine Suche gelten könnte, verwenden Sie diese Informationen, um eine Liste von Suchanfragen nach Städten anzuzeigen. Benutzer können eine Stadt auswählen, um ihre Suchergebnisse zu filtern. Um die facettierte Suche durchzuführen, rufen Sie die Query API auf und verwenden Sie das gewählte Dokumentattribut, um die Ergebnisse zu filtern.

Sie können bis zu 10 Facettenwerte pro Facette für eine Abfrage und nur eine verschachtelte Facette innerhalb einer Facette anzeigen. Wenn Sie diese Limits erhöhen möchten, wenden Sie sich an den Support. Wenn Sie die Anzahl der Facettenwerte pro Facette auf weniger als 10 beschränken möchten, können Sie dies im Facet Objekt angeben.

Die folgende JSON-Beispielantwort zeigt Facetten, die auf das Dokumentattribut „City“ beschränkt sind. Die Antwort beinhaltet die Anzahl der Dokumente für den Facettenwert.

{ 'FacetResults': [ { 'DocumentAttributeKey': 'City', 'DocumentAttributeValueCountPairs': [ { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Dubai' } }, { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Seattle' } }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Paris' } } ] } ]

Sie können auch Facetteninformationen für eine verschachtelte Facette anzeigen, z. B. eine Region innerhalb einer Stadt, um die Suchergebnisse weiter zu filtern.

Die folgende JSON-Beispielantwort zeigt Facetten, die auf das Dokumentattribut "CityRegion" beschränkt sind, als verschachtelte Facette innerhalb von „City“. Die Antwort beinhaltet die Anzahl der Dokumente für die verschachtelten Facettenwerte.

{ 'FacetResults': [ { 'DocumentAttributeKey': 'City', 'DocumentAttributeValueCountPairs': [ { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Dubai' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 2, 'DocumentAttributeValue': { 'StringValue': 'Bur Dubai' } }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Deira' } } ] } ] }, { 'Count': 3, 'DocumentAttributeValue': { 'StringValue': 'Seattle' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'North' } }, { 'Count': 2, 'DocumentAttributeValue': { 'StringValue': 'South' } } ] } ] }, { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'Paris' }, 'FacetResults': [ { 'DocumentAttributeKey': 'CityRegion', 'DocumentAttributeValueCountPairs': [ { 'Count': 1, 'DocumentAttributeValue': { 'StringValue': 'City center' } } ] } ] } } ] }

Wenn Sie ein Zeichenkettenlistenfeld verwenden, um Facetten zu erstellen, basieren die zurückgegebenen Facettenergebnisse auf dem Inhalt der Zeichenfolgenliste. Wenn Sie beispielsweise ein Zeichenkettenlistenfeld haben, das zwei Elemente enthält, eines mit der Liste „Dackel“, „Wursthund“ und eines mit dem Wert „Husky“, erhalten Sie drei Facetten. FacetResults

Weitere Informationen finden Sie unter Antworten und Antworttypen abfragen.

Verwenden von Dokumentattributen zum Filtern von Suchergebnissen

QueryGibt standardmäßig alle Suchergebnisse zurück. Um Antworten zu filtern, können Sie logische Operationen an den Dokumentattributen ausführen. Wenn Sie beispielsweise nur Dokumente für eine bestimmte Stadt benötigen, können Sie nach den benutzerdefinierten Dokumentattributen „Stadt“ und „Bundesland“ filtern. Verwenden Sie AttributeFilter, um eine boolesche Operation für die von Ihnen angegebenen Filter zu erstellen.

Die meisten Attribute können verwendet werden, um Antworten für alle Antworttypen zu filtern. Das _excerpt_page_number Attribut gilt jedoch nur für ANSWER Antworttypen, wenn Antworten gefiltert werden.

Das folgende Beispiel zeigt, wie eine logische UND-Operation ausgeführt wird, indem nach einer bestimmten Stadt, Seattle, und einem Bundesstaat, Washington, gefiltert wird.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = {'AndAllFilters': [ {"EqualsTo": {"Key": "City","Value": {"StringValue": "Seattle"}}}, {"EqualsTo": {"Key": "State","Value": {"StringValue": "Washington"}}} ] } )

Das folgende Beispiel zeigt, wie eine logische OR-Operation ausgeführt wird, wenn einer der SourceURI Schlüssel FileformatAuthor, oder den angegebenen Werten entspricht.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = {'OrAllFilters': [ {"EqualsTo": {"Key": "Fileformat","Value": {"StringValue": "AUTO_DETECT"}}}, {"EqualsTo": {"Key": "Author","Value": {"StringValue": "Ana Carolina"}}}, {"EqualsTo": {"Key": "SourceURI","Value": {"StringValue": "https://aws.amazonaws.com/234234242342"}}} ] } )

Verwenden Sie für StringList Felder die ContainsAll Attributfilter ContainsAny oder, um Dokumente mit der angegebenen Zeichenfolge zurückzugeben. Das folgende Beispiel zeigt, wie alle Dokumente zurückgegeben werden, deren Locations benutzerdefiniertes Attribut die Werte „Seattle“ oder „Portland“ enthält.

response=kendra.query( QueryText = query, IndexId = index, AttributeFilter = { "ContainsAny": { "Key": "Locations", "Value": { "StringListValue": [ "Seattle", "Portland"] }} } )

Filterung der Attribute der einzelnen Dokumente in den Suchergebnissen

Amazon Kendra gibt Dokumentattribute für jedes Dokument in den Suchergebnissen zurück. Sie können bestimmte Dokumentattribute filtern, die Sie als Teil der Suchergebnisse in die Antwort aufnehmen möchten. Standardmäßig werden alle einem Dokument zugewiesenen Dokumentattribute in der Antwort zurückgegeben.

Im folgenden Beispiel sind nur die _author Dokumentattribute _source_uri und in der Antwort für ein Dokument enthalten.

response=kendra.query( QueryText = query, IndexId = index, RequestedDocumentAttributes = ["_source_uri", "_author"] )