Text Search (New)

Plattform auswählen: Android iOS JavaScript Webdienst

Mit „Text Search (New)“ erhalten Sie Informationen zu Orte basierend auf einem String, z. B. „pizza in new york“ oder „Schuhgeschäfte“ in der Nähe von Ottawa“ oder "Hauptstraße 123". Der Dienst antwortet mit einer Liste von Orten die dem Textstring und der festgelegten Standortgewichtung entsprechen.

Dieser Dienst ist besonders nützlich, um mehrdeutige Adressen Abfragen in einem automatisierten System und Nicht-Adresskomponenten des Strings können sowohl mit Unternehmen als auch Adressen. Beispiele für mehrdeutige Adressabfragen sind schlecht formatierte Adressen. oder Anfragen, die Nicht-Adresskomponenten wie etwa Unternehmensnamen enthalten. Anfragen die ersten beiden Beispiele könnten keine Ergebnisse zurückgeben, es sei denn, es handelt sich um einen Standort – wie Region, Standortbeschränkung oder Standortgewichtung – festgelegt ist.

„Text Search (New)“ funktioniert ähnlich wie Nearby Search (Neu). Die wichtigsten der Unterschied zwischen „Text Search (New)“ können Sie eine beliebige Suchzeichenfolge angeben, während für Nearby Search (New) ein in dem Sie suchen möchten.

„Musterstraße 10, 10117 Berlin“ oder "Hauptstraße 123, Deutschland" Mehrere "High Streets" im Vereinigten Königreich: "Main Street" in den USA. Die Abfrage gibt nur dann die gewünschten Ergebnisse zurück, wenn eine Standortbeschränkung festgelegt ist: festgelegt.
„ChainRestaurant New York“ Mehrere „ChainRestaurant“ Standorte in New York keine Adresse oder sogar den Straßennamen.
„10 High Street, Escher UK“ oder "Hauptstraße 123, München" Nur eine "Hauptstraße" in der britischen Stadt Escher nur eine "Hauptstraße" in Pleasanton, Kalifornien, USA.
„UniqueRestaurantName New York“ Nur eine Einrichtung mit diesem Namen in New York keine Adresse unterscheiden können.
„pizza restaurants in berlin“ Diese Abfrage enthält eine Standortbeschränkung und "Pizzerien". ist einen klar definierten Ortstyp haben. Es werden mehrere Ergebnisse zurückgegeben.
„+49 514 670 8700“

Diese Abfrage enthält eine Telefonnummer. Es werden mehrere Ergebnisse für Orte, die mit dieser Telefonnummer verknüpft sind.

Text Search-Anfragen

Eine „Text Search“-Anfrage hat das folgende Format:

// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Define latitude and longitude coordinates of the search area.
LatLng southWest = new LatLng(37.38816277477739, -122.08813770258874);
LatLng northEast = new LatLng(37.39580487866437, -122.07702325966572);

// Use the builder to create a SearchByTextRequest object.
final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields)
  .setMaxResultCount(10)
  .setLocationRestriction(RectangularBounds.newInstance(southWest, northEast)).build();

// Call PlacesClient.searchByText() to perform the search.
// Define a response handler to process the returned List of Place objects.
placesClient.searchByText(searchByTextRequest)
    .addOnSuccessListener(response -> {
      List<Place> places = response.getPlaces();
    });

In diesem Beispiel führen Sie folgende Schritte aus:

  • Lege die Feldliste so fest, dass sie nur Place.Field.ID und Place.Field.NAME enthält. Das bedeutet, dass die Place-Objekte in der Antwort, die den jeweiligen Abgleich darstellen, Ort nur diese beiden Felder enthalten.

  • SearchByTextRequest.Builder verwenden zum Erstellen eines SearchByTextRequest , das die Suche definiert.

    • Setzen Sie den Textabfragestring auf „Scharfes vegetarisches Essen“.

    • Legen Sie die maximale Anzahl der Ergebnisorte auf 10 fest. Die Standard- und die Maximal 20.

    • Beschränken Sie den Suchbereich auf das durch Breitengrad und Breitengrad definierte Rechteck. Längengradkoordinaten. Es werden keine Übereinstimmungen außerhalb dieses Bereichs zurückgegeben.

  • Fügen Sie einen OnSuccessListener hinzu und rufen Sie die übereinstimmenden Orte aus der SearchByTextResponse -Objekt enthält.

Text Search-Antworten

Die SearchByTextResponse stellt die Antwort auf eine Suchanfrage dar. Ein SearchByTextResponse Objekt enthält:

  • Eine Liste von Place-Objekten, die alle übereinstimmenden Orte darstellen, mit einem Place Objekt pro übereinstimmendem Ort.

  • Jedes Place-Objekt enthält nur die in der Feldliste definierten Felder übergeben werden.

In der Anfrage haben Sie beispielsweise eine Feldliste so definiert:

// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

Diese Feldliste bedeutet, dass jedes Place-Objekt in der Antwort nur das Objekt Orts-ID und Name jedes übereinstimmenden Ortes. Sie können dann den Place.getId() verwenden. und Place.getName(), um auf diese Felder in jedem Place-Objekt zuzugreifen.

Weitere Beispiele für den Zugriff auf Daten in einem Place-Objekt finden Sie unter Auf Ort zugreifen Objektdatenfelder

Erforderliche Parameter

Die erforderlichen Parameter für SearchByTextRequest sind:

  • Liste der Felder

    Geben Sie an, welche Felder mit Ortsdaten zurückgegeben werden sollen. Übergeben Sie eine Liste mit Place.Field -Werte, die die Datenfelder angeben, die zurückgegeben werden sollen. Es gibt keine Standardliste zurückgegebene Felder in der Antwort.

    Feldlisten eignen sich gut, um sicherzustellen, um unnötige Daten zu verarbeiten, um unnötige Verarbeitungszeiten zu vermeiden Abrechnungsgebühren.

    Geben Sie eines oder mehrere der folgenden Felder an:

    • Die folgenden Felder lösen die SKU „Text Search (ID Only)“ aus:

      Place.Field.ID, Place.Field.NAME
    • Die folgenden Felder lösen die SKU „Text Search (Basic)“ aus:

      Place.Field.ADDRESS_COMPONENTS, Place.Field.BUSINESS_STATUS, Place.Field.ADDRESS, Place.Field.ICON_BACKGROUND_COLOR, Place.Field.ICON_URL, Place.Field.LAT_LNG, Place.Field.PHOTO_METADATAS, Place.Field.PLUS_CODE, Place.Field.TYPES, Place.Field.UTC_OFFSET, Place.Field.VIEWPORT, Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
    • Die folgenden Felder lösen die SKU „Text Search (Advanced)“ aus:

      Place.Field.CURRENT_OPENING_HOURS, Place.Field.SECONDARY_OPENING_HOURS, Place.Field.PHONE_NUMBER, Place.Field.PRICE_LEVEL, Place.Field.RATING, Place.Field.OPENING_HOURS, Place.Field.USER_RATINGS_TOTAL, Place.Field.WEBSITE_URI
    • Die folgenden Felder lösen die SKU „Text Search (Preferred)“ aus:

      Place.Field.CURBSIDE_PICKUP, Place.Field.DELIVERY, Place.Field.DINE_IN, Place.Field.EDITORIAL_SUMMARY, Place.Field.RESERVABLE, Place.Field.REVIEWS, Place.Field.SERVES_BEER, Place.Field.SERVES_BREAKFAST, Place.Field.SERVES_BRUNCH, Place.Field.SERVES_DINNER, Place.Field.SERVES_LUNCH, Place.Field.SERVES_VEGETARIAN_FOOD, Place.Field.SERVES_WINE, Place.Field.TAKEOUT

    Zum Festlegen des Feldlistenparameters rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setPlaceFields() auf.

  • Textabfrage

    Die Textzeichenfolge, nach der gesucht werden soll, z. B. "restaurant", „Hauptstraße 123“ oder „beste Sehenswürdigkeit in San Francisco“. Die API gibt mögliche Übereinstimmungen basierend auf diesem String zurück und ordnet die Ergebnisse zu ihrer wahrgenommenen Relevanz.

    Um den Textabfrageparameter festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setTextQuery() auf.

Optionale Parameter

Verwenden Sie die Methode SearchByTextRequest -Objekt, um die optionalen Parameter für Ihre Anfrage anzugeben.

  • Enthaltener Typ

    Beschränkt die Ergebnisse auf Orte, die dem angegebenen Typ entsprechen, der durch Tabelle A. Es kann nur ein Typ angegeben werden. Beispiel:

    • setIncludedType("bar")
    • setIncludedType("pharmacy")

    Zum Festlegen des enthaltenen Typparameters rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setIncludedType() auf.

  • Standortgewichtung

    Gibt das Gebiet an, in dem gesucht werden soll. Dieser Standort dient als Verzerrung, können Ergebnisse im Umkreis des angegebenen Standorts zurückgegeben werden, einschließlich der Ergebnisse außerhalb des angegebenen Bereichs liegt.

    Sie können Standortbeschränkung oder Standortgewichtung angeben, aber nicht beides. Stellen Sie sich eine Standortbeschränkung vor, Region, in der sich die Ergebnisse befinden müssen, und die Standortgewichtung wie Sie geben die Region an, in der sich die Ergebnisse befinden müssen, aber auch außerhalb liegen können in der Umgebung.

    Legen Sie den Bereich als rechteckigen Darstellungsbereich oder als Kreis fest.

    • Ein Kreis wird durch einen Mittelpunkt und einen Radius in Metern definiert. Der Radius muss zwischen 0,0 und 50000,0 (einschließlich) liegen. Beispiel:

      // Define latitude and longitude coordinates of the center of the search area.
      LatLng searchCenter = new LatLng(37.38816277477739, -122.08813770258874);
      
      // Use the builder to create a SearchByTextRequest object.
      // Set the radius of the search area to 500.0 meters.
      final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields)
        .setMaxResultCount(10)
        .setLocationBias(CircularBounds.newInstance(searchCenter, 500.0)).build();
      
    • Ein Rechteck ist der Darstellungsbereich mit Breiten- und Längengraden, diagonal gegenüberliegende niedrige und hohe Punkte. Der Tiefstpunkt markiert den Südwesten Ecke des Rechtecks. Der höchste Punkt stellt den Nordosten dar. des Rechtecks.

      Ein Darstellungsbereich wird als geschlossene Region, d. h., sie umfasst ihre Begrenzung. Die Breitengradgrenzen muss zwischen -90 und einschließlich 90 Grad liegen und die Längengrenzen muss zwischen -180 und 180 Grad liegen:

      • Wenn low = high, besteht der Darstellungsbereich aus folgenden Elementen: einen einzigen Punkt.
      • Wenn low.longitude > high.longitude, der wird der Längengradbereich invertiert (der Darstellungsbereich überschreitet den 180-Grad-Winkel Längengrad).
      • Wenn low.longitude = -180 Grad und high.longitude = 180 Grad, der Darstellungsbereich umfasst alle Längenangaben.
      • Wenn low.longitude = 180 Grad und high.longitude = -180 Grad, der Längengradbereich ist leer.
      • Wenn low.latitude > high.latitude, der Der Breitengradbereich ist leer.

      Die Werte für „Niedrig“ und „Hoch“ müssen ausgefüllt werden. Das dargestellte Feld darf nicht leer. Ein leerer Darstellungsbereich führt zu einem Fehler.

      Bei einem rechteckigen Darstellungsbereich Text Search-Anfragen

      Um den Parameter für die Standortgewichtung festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setLocationBias() auf.

  • Standortbeschränkung

    Gibt das Gebiet an, in dem gesucht werden soll. Ergebnisse außerhalb des angegebenen Bereichs werden nicht zurückgegeben. Legen Sie den Bereich als rechteckigen Darstellungsbereich fest. Beschreibung ansehen der Standortverzerrung finden Sie weitere Informationen zum Definieren des Darstellungsbereichs.

    Sie können Standortbeschränkung oder Standortgewichtung angeben, aber nicht beides. Stellen Sie sich eine Standortbeschränkung vor, Region, in der sich die Ergebnisse befinden müssen, und die Standortgewichtung wie gibt die Region an, in der sich die Ergebnisse in der Nähe befinden müssen, aber auch außerhalb liegen können in der Umgebung.

    Um den Parameter für die Standortbeschränkung festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setLocationRestriction() auf.

  • Maximale Anzahl von Ergebnissen

    Gibt die maximale Anzahl der Ortsergebnisse an, die zurückgegeben werden sollen. Muss zwischen folgenden Werten liegen: 1 und 20 (Standardeinstellung) einschließlich.

    Um den Parameter für die maximale Ergebnisanzahl festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setMaxResultCount() auf.

  • Mindestbewertung

    Beschränkt die Ergebnisse auf Nutzer, deren durchschnittliche Nutzerbewertung höher ist als oder diesem Limit entsprechen. Die Werte müssen zwischen 0,0 und 5,0 (einschließlich) in in Schritten von 0,5. Beispiel: 0, 0,5, 1,0, ... , 5,0 (jeweils einschließlich). Mögliche Werte: auf 0,5 aufgerundet. Beispiel: Bei einem Wert von 0, 6 werden alle mit einer Bewertung unter 1,0.

    Um den Parameter für die Mindestbewertung festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setMinRating() auf.

  • Jetzt geöffnet

    Wenn true, werden nur die Orte zurückgegeben, die geöffnet sind. wenn die Abfrage gesendet wird. Wenn false, alle Unternehmen zurückgeben unabhängig vom Öffnungsstatus. Orte, für die in der Google Places-Datenbank keine Öffnungszeiten angegeben sind, sind wird zurückgegeben, wenn Sie diesen Parameter auf false festlegen.

    Zum Festlegen des Parameters „Jetzt öffnen“ rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setOpenNow() auf.

  • Preisstufen

    Standardmäßig enthalten die Ergebnisse Orte, an denen Dienstleistungen aller Preisstufen angeboten werden. Einschränkung nur Orte mit bestimmten Preisstufen enthalten, können Sie eine Liste von ganzzahligen Werten, die den Preisstufen für die Orte entsprechen, die Sie zurückgeben möchten:

    • 1: Der Ort bietet günstige Dienstleistungen.
    • 2: Der Ort bietet Dienste zu moderaten Preisen an.
    • 3: Ort bietet teure Dienstleistungen an.
    • 4: Der Ort bietet sehr teure Dienstleistungen an.

    Wenn Sie den Parameter für die Preisstufen festlegen möchten, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setPriceLevels() auf.

  • Rangfolgeneinstellung

    Gibt an, wie die Ergebnisse in der Antwort basierend auf dem Typ Suchanfrage:

    • Für eine kategoriale Suchanfrage wie „Restaurants in New York City“: SearchByTextRequest.RankPreference.RELEVANCE (Ergebnisse nach Suchrelevanz sortieren) ist die Standardeinstellung. Sie können die Rangeinstellung auf SearchByTextRequest.RankPreference.RELEVANCE oder SearchByTextRequest.RankPreference.DISTANCE (Ergebnisse nach Entfernung sortieren).
    • Für eine nicht kategoriale Suchanfrage wie „Mountain View, CA“ empfehlen wir Sie den Parameter für die Rangeinstellung nicht konfigurieren.

    Zum Festlegen des Parameters für die Rangeinstellung rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setRankPreference() auf.

  • Regionscode

    Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als <ph type="x-smartling-placeholder"></ph> zweistelligen CLDR-Code eingeben. Dieser Parameter kann auch eine Verzerrung in den Suchergebnissen. Es gibt keinen Standardwert.

    Wenn der Ländername des Adressfelds in der Antwort mit der Regionalcode wird der Ländercode bei der Adresse weggelassen.

    Die meisten CLDR-Codes entsprechen den ISO 3166-1-Codes, mit einigen nennenswerten Ausnahmen. Die ccTLD des Vereinigten Königreichs lautet beispielsweise "uk" (.co.uk), während der ISO 3166-1-Code „gb“ lautet (technisch für die Rechtspersönlichkeit des Vereinigten Königreichs Großbritannien und Nordirland“). Der Parameter kann sich gemäß geltendem Recht auf Ergebnisse auswirken.

    Wenn Sie den Parameter für den Regionscode festlegen möchten, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setRegionCode() auf.

  • Strikte Filterung

    Wird mit dem Parameter „Einschließen“-Typ verwendet. Wenn festgelegt auf true, nur Orte, die den angegebenen Typen entsprechen, die durch include-Typ zurückgegeben. Wenn die Standardeinstellung false ist, kann die Antwort Orte enthalten, nicht mit den angegebenen Typen übereinstimmen.

    Um den strikten Typfilterungsparameter festzulegen, rufen Sie beim Erstellen des SearchByTextRequest-Objekts die Methode setStrictTypeFiltering() auf.