Wyszukiwanie tekstowe (nowe) zwraca informacje o zestawie miejsc na podstawie ciągu znaków (np. „pizza w Nowym Jorku”, „sklepy obuwnicze w pobliżu Ottawy” lub „123 Main Street”). Usługa odpowiada listą miejsc pasujących do ciągu tekstowego i wszelkich ustawionych odchyleń lokalizacji.
Oprócz parametrów wymaganych interfejs Text Search (New) umożliwia doprecyzowanie zapytań za pomocą parametrów opcjonalnych, aby uzyskać lepsze wyniki.
Wyszukiwanie tekstowe (nowość) jest podobne do wyszukiwania w pobliżu (nowość). Główna różnica między tymi usługami polega na tym, że w przypadku wyszukiwania tekstowego (nowego) możesz określić dowolny ciąg wyszukiwania, a w przypadku wyszukiwania w pobliżu (nowego) musisz podać konkretny obszar, w którym ma się odbywać wyszukiwanie.
Żądania wyszukiwania tekstowego
Żądanie wyszukiwania tekstowego ma postać:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_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(); });
W tym przykładzie:
- Ustaw listę pól tak, aby zawierała tylko - Place.Field.IDi- Place.Field.DISPLAY_NAME. Oznacza to, że obiekty- Placew odpowiedzi, które reprezentują każde pasujące miejsce, zawierają tylko te 2 pola.
- Użyj - SearchByTextRequest.Builder, aby utworzyć obiekt- SearchByTextRequest, który definiuje wyszukiwanie.- Ustaw ciąg zapytania tekstowego na „Spicy Vegetarian Food”. 
- Ustaw maksymalną liczbę miejsc w wynikach na 10. Wartość domyślna i maksymalna to 20. 
- Ogranicz obszar wyszukiwania do prostokąta zdefiniowanego przez współrzędne geograficzne. Nie są zwracane żadne dopasowania spoza tego obszaru. 
 
- Dodaj - OnSuccessListeneri uzyskaj pasujące miejsca z obiektu- SearchByTextResponse.
Odpowiedzi wyszukiwania tekstowego
Klasa SearchByTextResponse
reprezentuje odpowiedź na żądanie wyszukiwania. Obiekt SearchByTextResponse zawiera:
- Lista obiektów - Placereprezentujących wszystkie pasujące miejsca. Każde pasujące miejsce jest reprezentowane przez jeden obiekt- Place.
- Każdy obiekt - Placezawiera tylko pola zdefiniowane przez listę pól przekazaną w żądaniu.
Na przykład w żądaniu zdefiniowano listę pól w ten sposób:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);
Ta lista pól oznacza, że każdy obiekt Place w odpowiedzi zawiera tylko identyfikator miejsca i nazwę każdego pasującego miejsca. Następnie możesz użyć metod Place.getId() i Place.getName(), aby uzyskać dostęp do tych pól w każdym obiekcie Place.
Więcej przykładów uzyskiwania dostępu do danych w obiekcie Place znajdziesz w artykule Uzyskiwanie dostępu do pól danych obiektu Place.
Wymagane parametry
Wymagane parametry dla 
SearchByTextRequest
to:
- 
    Lista pólOkreśl, które pola danych o miejscu mają być zwracane. Przekaż listę wartości Place.Fieldokreślających pola danych, które mają zostać zwrócone. W odpowiedzi nie ma domyślnej listy zwracanych pól.Listy pól to dobra praktyka projektowania, która pozwala uniknąć żądania niepotrzebnych danych, co z kolei pomaga uniknąć niepotrzebnego czasu przetwarzania i opłat. Określ co najmniej jedno z tych pól: - Te pola wywołują Text Search Essentials ID Only SKU: - Place.Field.DISPLAY_NAME*
 * Używaj zamiast- Place.Field.NAME(wycofano w wersji 4.0).
 - Place.Field.ID
 - Place.Field.RESOURCE_NAME*
 * Zawiera nazwę zasobu miejsca w formacie:- places/PLACE_ID.
 Użyj- DISPLAY_NAME, aby uzyskać dostęp do nazwy tekstowej miejsca.
- Te pola wywołują jednostkę SKU Text Search Pro: - Place.Field.ACCESSIBILITY_OPTIONS*
 Użyj zamiast- Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE(wycofano).
 - Place.Field.ADDRESS_COMPONENTS
 - Place.Field.ADR_FORMAT_ADDRESS
 - Place.Field.BUSINESS_STATUS
 - Place.Field.FORMATTED_ADDRESS*
 Użyj zamiast- Place.Field.ADDRESS(wycofano).
 - Place.Field.GOOGLE_MAPS_URI
 - Place.Field.ICON_BACKGROUND_COLOR
 - Place.Field.ICON_MASK_URL*
 Użyj zamiast- Place.Field.ICON_URL(wycofano).
 - Place.Field.LOCATION*
 Używaj zamiast- Place.Field.LAT_LNG(wycofano).
 - Place.Field.PHOTO_METADATAS
 - Place.Field.PLUS_CODE
 - Place.Field.PRIMARY_TYPE
 - Place.Field.PRIMARY_TYPE_DISPLAY_NAME
 - Place.Field.SHORT_FORMATTED_ADDRESS
 - Place.Field.SUB_DESTINATIONS
 - Place.Field.TYPES
 - Place.Field.UTC_OFFSET
 - Place.Field.VIEWPORT
- Kod SKU Text Search Enterprise jest aktywowany przez te pola: - Place.Field.CURRENT_OPENING_HOURS
 - Place.Field.CURRENT_SECONDARY_OPENING_HOURS
 - Place.Field.INTERNATIONAL_PHONE_NUMBER*
 * Używaj zamiast- Place.Field.PHONE_NUMBER, które zostało wycofane.
 - Place.Field.NATIONAL_PHONE_NUMBER
 - Place.Field.OPENING_HOURS
 - Place.Field.PRICE_LEVEL
 - Place.Field.RATING
 - Place.Field.SECONDARY_OPENING_HOURS
 - Place.Field.USER_RATING_COUNT*
 * Używaj zamiast wycofanego parametru- Place.Field.USER_RATINGS_TOTAL.
 - Place.Field.WEBSITE_URI
- Te pola wywołują jednostkę SKU Text Search Enterprise Plus: - Place.Field.ALLOWS_DOGS
 - Place.Field.CURBSIDE_PICKUP
 - Place.Field.DELIVERY
 - Place.Field.DINE_IN
 - Place.Field.EDITORIAL_SUMMARY
 - Place.Field.EV_CHARGE_OPTIONS
 - Place.Field.FUEL_OPTIONS
 - Place.Field.GOOD_FOR_CHILDREN
 - Place.Field.GOOD_FOR_GROUPS
 - Place.Field.GOOD_FOR_WATCHING_SPORTS
 - Place.Field.LIVE_MUSIC
 - Place.Field.MENU_FOR_CHILDREN
 - Place.Field.OUTDOOR_SEATING
 - Place.Field.PARKING_OPTIONS
 - Place.Field.PAYMENT_OPTIONS
 - Place.Field.RESERVABLE
 - Place.Field.RESTROOM
 - Place.Field.REVIEWS
 - Place.Field.SERVES_BEER
 - Place.Field.SERVES_BREAKFAST
 - Place.Field.SERVES_BRUNCH
 - Place.Field.SERVES_COCKTAILS
 - Place.Field.SERVES_COFFEE
 - Place.Field.SERVES_DESSERT
 - Place.Field.SERVES_DINNER
 - Place.Field.SERVES_LUNCH
 - Place.Field.SERVES_VEGETARIAN_FOOD
 - Place.Field.SERVES_WINE
 - Place.Field.TAKEOUT
 Aby ustawić parametr listy pól, podczas tworzenia obiektu SearchByTextRequestwywołaj metodęsetPlaceFields().
- 
    Zapytanie tekstoweCiąg tekstowy, według którego ma być prowadzone wyszukiwanie, np. „restauracja”, „ul. Główna 123” lub „najlepsze miejsce do odwiedzenia w San Francisco”. Interfejs API zwraca pasujące kandydatury na podstawie tego ciągu znaków i porządkuje wyniki według ich trafności. Aby ustawić parametr zapytania tekstowego, podczas tworzenia obiektu SearchByTextRequestwywołaj metodęsetTextQuery().
Parametry opcjonalne
Użyj obiektu 
SearchByTextRequest
, aby określić opcjonalne parametry żądania.
- Uwzględniony typ- Ogranicza wyniki do miejsc pasujących do określonego typu zdefiniowanego w tabeli A. Możesz określić tylko 1 typ. Na przykład: - setIncludedType("bar")
- setIncludedType("pharmacy")
 - Aby ustawić parametr included type, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setIncludedType().
- Obciążenie lokalizacją- Określa obszar wyszukiwania. Ta lokalizacja służy jako punkt odniesienia, co oznacza, że mogą być zwracane wyniki z okolic określonej lokalizacji, w tym wyniki spoza określonego obszaru. - Możesz określić ograniczenie lokalizacji lub preferencje lokalizacji, ale nie oba te ustawienia naraz. Ograniczenie lokalizacji określa region, w którym muszą się znajdować wyniki, a preferencje lokalizacji określają region, w którym prawdopodobnie będą się znajdować wyniki lub w pobliżu którego będą się znajdować. Pamiętaj, że w przypadku korzystania z preferencji lokalizacji wyniki mogą nadal znajdować się poza określonym obszarem. - Określ region jako prostokątny widoczny obszar lub jako okrąg. - Okrąg jest definiowany przez punkt środkowy i promień w metrach. Promień musi mieścić się w zakresie od 0,0 do 50 000,0 (włącznie). Na przykład: - // 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(); 
- Prostokąt to widoczny obszar określony przez szerokość i długość geograficzną, reprezentowany przez 2 przeciwległe punkty o niskich i wysokich wartościach. Punkt dolny oznacza południowo-zachodni róg prostokąta, a punkt górny – północno-wschodni róg prostokąta. - Widoczny obszar jest uważany za obszar zamknięty, co oznacza, że obejmuje swoje granice. Zakres szerokości geograficznej musi się mieścić w przedziale od -90 do 90 stopni włącznie, a zakres długości geograficznej musi się mieścić w przedziale od -180 do 180 stopni włącznie: - Jeśli low=high, widoczny obszar składa się z tego pojedynczego punktu.
- Jeśli low.longitude>high.longitude, zakres długości geograficznej jest odwrócony (widoczny obszar przekracza linię długości geograficznej 180 stopni).
- Jeśli low.longitude= -180 stopni, ahigh.longitude= 180 stopni, widoczny obszar obejmuje wszystkie długości geograficzne.
- Jeśli low.longitude= 180 stopni, ahigh.longitude= -180 stopni, zakres długości geograficznej jest pusty.
- Jeśli low.latitude>high.latitude, zakres szerokości geograficznej jest pusty.
 - Musisz podać dolną i górną wartość, a reprezentowane pole nie może być puste. Pusty widoczny obszar powoduje błąd. - Na przykład w przypadku prostokątnego obszaru widoku zobacz zapytania dotyczące wyszukiwania tekstowego. - Aby ustawić parametr odchylenia lokalizacji, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setLocationBias().
- Jeśli 
 
- Ograniczenie dotyczące lokalizacji- Określa obszar wyszukiwania. Wyniki spoza określonego obszaru nie są zwracane. Określ region jako prostokątny widoczny obszar. Informacje o definiowaniu obszaru widocznego znajdziesz w opisie błędu lokalizacji. - Możesz określić ograniczenie lokalizacji lub preferencje lokalizacji, ale nie oba te ustawienia naraz. Ograniczenie lokalizacji określa region, w którym muszą się znajdować wyniki, a odchylenie lokalizacji określa region, w pobliżu którego muszą się znajdować wyniki, ale mogą one być poza tym obszarem. - Aby ustawić parametr ograniczenia lokalizacji, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setLocationRestriction().
- 
    Maksymalna liczba wynikówOkreśla maksymalną liczbę wyników dotyczących miejsc do zwrócenia. Musi mieścić się w przedziale od 1 do 20 (wartość domyślna) włącznie. Aby ustawić parametr maksymalnej liczby wyników, podczas tworzenia obiektu SearchByTextRequestwywołaj metodęsetMaxResultCount().
- Minimalna ocena- Ogranicza wyniki tylko do tych, których średnia ocena użytkowników jest większa lub równa temu limitowi. Wartości muszą mieścić się w zakresie od 0,0 do 5,0 (włącznie) i być wielokrotnością 0,5. Na przykład: 0, 0,5, 1,0, ..., 5,0 włącznie. Wartości są zaokrąglane w górę do najbliższej liczby z końcówką 0,5. Na przykład wartość 0,6 eliminuje wszystkie wyniki z oceną poniżej 1,0. - Aby ustawić parametr minimalnej oceny, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setMinRating().
- Teraz otwarte- Jeśli - true, zwracaj tylko te miejsca, które są otwarte w momencie wysłania zapytania. Jeśli- false, zwróć wszystkie firmy niezależnie od stanu otwarcia. Miejsca, które nie mają określonych godzin otwarcia w bazie danych Miejsc Google, są zwracane, jeśli ustawisz ten parametr na- false.- Aby ustawić parametr open_now, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setOpenNow().
- 
    Poziomy cenDomyślnie wyniki obejmują miejsca, w których usługi są świadczone na wszystkich poziomach cenowych. Aby ograniczyć wyniki do miejsc o określonych poziomach cen, możesz przekazać listę wartości całkowitych odpowiadających poziomom cen miejsc, które chcesz zwrócić: - 1– miejsce oferuje niedrogie usługi.
- 2– miejsce oferuje usługi w umiarkowanych cenach.
- 3– miejsce oferuje drogie usługi.
- 4– miejsce oferuje bardzo drogie usługi.
 Aby ustawić parametr poziomów cen, podczas tworzenia obiektu SearchByTextRequestwywołaj metodęsetPriceLevels().
- Ustawienie rankingu- Określa, w jaki sposób wyniki są klasyfikowane w odpowiedzi na podstawie typu zapytania: - W przypadku zapytania kategorycznego, np. „Restauracje w Nowym Jorku”, domyślnie stosowana jest funkcja SearchByTextRequest.RankPreference.RELEVANCE(sortowanie wyników według trafności wyszukiwania). Możesz ustawić preferencje dotyczące rankingu naSearchByTextRequest.RankPreference.RELEVANCElubSearchByTextRequest.RankPreference.DISTANCE(sortowanie wyników według odległości).
- W przypadku zapytań niekategorycznych, takich jak „Mountain View, CA”, zalecamy pozostawienie parametru preferencji rankingu bez ustawienia.
 - Aby ustawić parametr preferencji rankingu, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setRankPreference().
- W przypadku zapytania kategorycznego, np. „Restauracje w Nowym Jorku”, domyślnie stosowana jest funkcja 
- Kod regionu- Kod regionu używany do formatowania odpowiedzi, określony jako dwuznakowy kod CLDR. Ten parametr może też wpływać na wyniki wyszukiwania. Nie ma wartości domyślnej. - Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodem regionu, kod kraju jest pomijany w adresie. - Większość kodów CLDR jest identyczna z kodami ISO 3166-1, z kilkoma istotnymi wyjątkami. Na przykład krajowa domena najwyższego poziomu Zjednoczonego Królestwa to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”). W zależności od obowiązujących przepisów parametr może wpływać na wyniki. - Aby ustawić parametr kodu regionu, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setRegionCode().
- Filtrowanie ścisłe- Używany z parametrem typu include. Jeśli ustawisz wartość - true, zwracane będą tylko miejsca pasujące do typów określonych w parametrze includeType. Gdy wartość parametru to- false(domyślnie), odpowiedź może zawierać miejsca, które nie pasują do określonych typów.- Aby ustawić parametr filtrowania ścisłego typu, podczas tworzenia obiektu - SearchByTextRequestwywołaj metodę- setStrictTypeFiltering().