टेक्स्ट सर्च (नई सुविधा) से, नतीजों के सेट के बारे में जानकारी मिलती है किसी स्ट्रिंग के आधार पर जगहें — उदाहरण के लिए "न्यूयॉर्क में पिज़्ज़ा" या "जूते की दुकान ओटावा के पास" या "123 मेन स्ट्रीट". सेवा, जगहों की सूची के साथ जवाब देती है टेक्स्ट स्ट्रिंग और सेट किए गए किसी भी स्थान पूर्वाग्रह से मेल खाएगा.
यह सेवा खास तौर पर तब काम आती है, जब पते की जानकारी साफ़ तौर पर न दी गई हो एक ऑटोमेटेड सिस्टम में क्वेरी करता है, स्ट्रिंग के बिना पते वाले कॉम्पोनेंट कारोबारों से मैच कर सकते हैं. साथ ही, पते. पते से जुड़ी ऐसी क्वेरी के उदाहरण जिनमें साफ़ तौर पर जानकारी नहीं दी गई है, खराब फ़ॉर्मैट वाले पते हैं या ऐसे अनुरोध जिनमें कारोबार के नाम जैसे बिना पते वाले कॉम्पोनेंट शामिल हों. अनुरोध जैसे पहले दो उदाहरण शून्य परिणाम दे सकते हैं जब तक कि कोई स्थान — जैसे क्षेत्र, स्थान प्रतिबंध या स्थान पूर्वाग्रह — सेट हो जाते हैं.
टेक्स्ट से खोजें (नया) आस-पास खोज की सुविधा से मिलता-जुलता है (नया). मुख्य दोनों में यह अंतर है कि टेक्स्ट खोज (नया) आपको आर्बिट्ररी सर्च स्ट्रिंग तय करने की सुविधा देता है, जबकि Nearby Search (नया) के लिए खोज करने के लिए खास क्षेत्र चुनें.
"10 हाई स्ट्रीट, यूनाइटेड किंगडम" या "123 Main Street, US" | यूके के कई "हाई स्ट्रीट"; यूएस में कई "मुख्य सड़क". क्वेरी से मनमुताबिक नतीजे तब तक नहीं मिलते, जब तक कि जगह की जानकारी की पाबंदी नहीं होती सेट. |
"चेन रेस्टोरेंट न्यूयॉर्क" | कई "चेन रेस्टोरेंट" दिल्ली में जगहें; मोहल्ले का पता नहीं है या यहां तक कि सड़क का नाम भी. |
"10 हाई स्ट्रीट, एशर यूके" या "123 मेन स्ट्रीट, प्लेसेंटन यूएस" | सिर्फ़ एक "हाई स्ट्रीट" यूके के शहर ईशर में; केवल एक "मुख्य सड़क" एक अमेरिकी शहर प्लेसेंटन सीए (कैलिफ़ोर्निया के लिए) में. |
"यूनिक रेस्टोरेंट का नाम न्यूयॉर्क" | न्यूयॉर्क में इस नाम का सिर्फ़ एक होटल; मोहल्ले का पता नहीं है जिन्हें पहचान करने की ज़रूरत होती है. |
"दिल्ली में पिज़्ज़ा रेस्टोरेंट" | इस क्वेरी में, जगह की जानकारी से जुड़ी पाबंदी और "पिज़्ज़ा रेस्टोरेंट" जैसी क्वेरी शामिल हैं इससे मेल खाता है आपके पास जगह की सटीक जानकारी होनी चाहिए. यह कई नतीजे दिखाता है. |
"+1 514-670-8700" | इस क्वेरी में फ़ोन नंबर शामिल है. यह उस फ़ोन नंबर से जुड़ी जगहें हैं. |
टेक्स्ट से खोज के अनुरोध
टेक्स्ट खोज अनुरोध इस तरह का होता है:
// 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(); });
इस उदाहरण में, आपने:
सिर्फ़
Place.Field.ID
औरPlace.Field.NAME
को शामिल करने के लिए, फ़ील्ड सूची सेट करें. इसका मतलब है कि जवाब में मौजूदPlace
ऑब्जेक्ट, जो मैच करते समय हर मैच को दिखाते हैं यहां सिर्फ़ वे दो फ़ील्ड होने चाहिए.SearchByTextRequest.Builder
का इस्तेमाल करें बनाने के लिएSearchByTextRequest
ऑब्जेक्ट है जो खोज को परिभाषित करता है.टेक्स्ट क्वेरी स्ट्रिंग को "मसालेदार शाकाहारी खाना" पर सेट करें.
परिणाम स्थानों की अधिकतम संख्या को 10 पर सेट करें. डिफ़ॉल्ट और यह संख्या ज़्यादा से ज़्यादा 20 हो सकती है.
खोज क्षेत्र को अक्षांश द्वारा निर्धारित आयत तक सीमित करें और देशांतर निर्देशांक. इस फ़ील्ड के बाहर के नतीजे नहीं दिखाए जाते.
कोई
OnSuccessListener
जोड़ें औरSearchByTextResponse
ऑब्जेक्ट है.
टेक्स्ट से जुड़े खोज के जवाब
कॉन्टेंट बनाने
SearchByTextResponse
क्लास, खोज अनुरोध से मिले जवाब को दिखाती है. SearchByTextResponse
ऑब्जेक्ट में शामिल है:
Place
ऑब्जेक्ट की सूची, जो मेल खाने वाली सभी जगहों को दिखाती है. इनमें एक जगह शामिल है मिलती-जुलती हर जगह के लिएPlace
ऑब्जेक्ट.हर
Place
ऑब्जेक्ट में सिर्फ़ फ़ील्ड सूची से तय किए गए फ़ील्ड होते हैं अनुरोध में पास किया गया है.
उदाहरण के लिए, आपने अनुरोध में एक फ़ील्ड सूची को इस तरह परिभाषित किया है:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
इस फ़ील्ड सूची का मतलब है कि जवाब के हर Place
ऑब्जेक्ट में सिर्फ़
स्थान आईडी और हर मेल खाने वाली जगह का नाम. इसके बाद, Place.getId()
का इस्तेमाल किया जा सकता है
और हर Place
ऑब्जेक्ट में इन फ़ील्ड को ऐक्सेस करने के Place.getName()
तरीके.
Place
ऑब्जेक्ट में डेटा ऐक्सेस करने के ज़्यादा उदाहरणों के लिए, ऐक्सेस प्लेस देखें
ऑब्जेक्ट डेटा फ़ील्ड
ज़रूरी पैरामीटर
इसके लिए ज़रूरी पैरामीटर
SearchByTextRequest
हैं:
-
फ़ील्ड की सूची
बताएं कि जगह की जानकारी के कौनसे डेटा फ़ील्ड दिखाने हैं. की एक सूची पास करें
Place.Field
दिए जाने वाले डेटा फ़ील्ड को दिखाने वाली वैल्यू. यहां कोई डिफ़ॉल्ट सूची नहीं है जवाब में फ़ील्ड दिखाई गईं.फ़ील्ड की सूचियां डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आप अनुरोध न करें. डेटा की ज़रूरत नहीं होती, जिससे प्रोसेसिंग में लगने वाले ज़्यादा समय को कम करने और शुल्क नहीं लिया जाएगा.
इनमें से एक या ज़्यादा फ़ील्ड चुनें:
ये फ़ील्ड Text Search (सिर्फ़ आईडी) SKU को ट्रिगर करते हैं:
Place.Field.ID
,Place.Field.NAME
ये फ़ील्ड टेक्स्ट सर्च (बेसिक) SKU को ट्रिगर करते हैं:
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
ये फ़ील्ड Text Search (ऐडवांस) SKU को ट्रिगर करते हैं:
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
ये फ़ील्ड Text Search (पसंदीदा) SKU को ट्रिगर करते हैं:
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
फ़ील्ड सूची पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetPlaceFields()
तरीके को कॉल करें. -
टेक्स्ट क्वेरी
वह टेक्स्ट स्ट्रिंग जिस पर खोजना है. उदाहरण के लिए: "रेस्टोरेंट", "123 मेन स्ट्रीट" या "सैन फ़्रांसिस्को में घूमने की सबसे अच्छी जगह". एपीआई इस स्ट्रिंग के आधार पर उम्मीदवार के मिलान की जानकारी देता है और नतीजों के आधार पर नतीजों को क्रम में लगाता है वे कितने काम के हैं.
टेक्स्ट क्वेरी पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetTextQuery()
तरीके को कॉल करें.
ज़रूरी नहीं पैरामीटर
इसका इस्तेमाल करें
SearchByTextRequest
ऑब्जेक्ट का इस्तेमाल करें.
शामिल किया गया प्रकार
इससे नतीजों को उन जगहों तक सीमित करता है जो इसके बताए गए टाइप से मेल खाते हैं टेबल A. सिर्फ़ एक टाइप चुना जा सकता है. उदाहरण के लिए:
setIncludedType("bar")
setIncludedType("pharmacy")
शामिल किए गए टाइप पैरामीटर को सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetIncludedType()
तरीके को कॉल करें.जगह का मापदंड
इस नीति से, खोजे जाने वाले किसी इलाके के बारे में पता चलता है. इस जगह की जानकारी पूर्वाग्रह के तौर पर है जिसका मतलब है बताई गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, नतीजे भी शामिल हैं का इस्तेमाल करें.
जगह की जानकारी पर पाबंदी लगाई जा सकती है या जगह के मापदंड तय किए जा सकते हैं, लेकिन दोनों नहीं. स्थान प्रतिबंध को वह क्षेत्र जिसमें परिणाम होने चाहिए, और स्थान पक्षपात वह क्षेत्र तय करते हुए जिसमें नतीजे इसके पास होने चाहिए, लेकिन उसके बाहर भी हो सकते हैं क्षेत्र.
इलाके की जानकारी एक आयताकार व्यूपोर्ट या सर्कल के तौर पर दें.
सर्कल को सेंटर पॉइंट और मीटर में रेडियस से तय किया जाता है. दायरा यह 0.0 और 50000.0 के बीच होना चाहिए. उदाहरण के लिए:
// 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();
रेक्टैंगल, अक्षांश-देशांतर का व्यूपोर्ट होता है. इसे दो फ़ॉर्मैट में दिखाया जाता है नीचे और सबसे ऊपरी पॉइंट की ओर तिरछा रूप से आमने-सामने. निम्न बिंदु दक्षिण-पश्चिम को चिह्नित करता है आयत के कोने और सबसे ऊपरी बिंदु से उत्तर-पूर्व को दिखाया जाता है कोने में रखा जा सकता है.
व्यूपोर्ट को बंद क्षेत्र है, जिसका मतलब है इसकी सीमा शामिल है. अक्षांश की सीमाएं यह -90 से 90 डिग्री के बीच होना चाहिए, और देशांतर की सीमा यह -180 से 180 डिग्री के बीच होना चाहिए, जिसमें ये भी शामिल हैं:
- अगर
low
=high
है, तो व्यूपोर्ट में ये शामिल होते हैं समस्या को हल कर रहे हैं. - अगर
low.longitude
>high.longitude
, देशांतर की सीमा उल्टी है (व्यूपोर्ट ने 180 डिग्री को पार कर लिया है देशांतर लाइन). - अगर
low.longitude
= -180 डिग्री औरhigh.longitude
= 180 डिग्री, व्यूपोर्ट में सभी शामिल होते हैं देशांतर. - अगर
low.longitude
= 180 डिग्री औरhigh.longitude
= -180 डिग्री, देशांतर की रेंज है खाली. - अगर
low.latitude
>high.latitude
, अक्षांश रेंज खाली है.
कम और ज़्यादा, दोनों तरह की जानकारी भरी जानी चाहिए. साथ ही, दिखाया गया बॉक्स नहीं होना चाहिए खाली. व्यूपोर्ट का खाली होने पर गड़बड़ी होती है.
उदाहरण के लिए, किसी आयताकार व्यूपोर्ट में देखें टेक्स्ट खोज के अनुरोध.
जगह के हिसाब से पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetLocationBias()
तरीके को कॉल करें.- अगर
जगह की जानकारी से जुड़ी पाबंदी
इस नीति से, खोजे जाने वाले किसी इलाके के बारे में पता चलता है. चुने गए इलाके से बाहर के नतीजे नहीं दिखाए जा सकते वापस किया गया. इलाके की जानकारी एक आयताकार व्यूपोर्ट के तौर पर दें. ब्यौरा देखें लोकेशन बायस का देखें.
जगह की जानकारी पर पाबंदी लगाई जा सकती है या जगह के मापदंड तय किए जा सकते हैं, लेकिन दोनों नहीं. स्थान प्रतिबंध को वह क्षेत्र जिसमें परिणाम होने चाहिए, और स्थान पक्षपात उस क्षेत्र को तय करते हुए जिसमें बताया गया है कि नतीजे इसके पास होने चाहिए, लेकिन उनके बाहर भी हो सकते हैं क्षेत्र.
जगह की जानकारी पर पाबंदी वाला पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetLocationRestriction()
तरीके को कॉल करें.-
नतीजों की ज़्यादा से ज़्यादा संख्या
इससे पता चलता है कि जगह के बारे में ज़्यादा से ज़्यादा कितने नतीजे दिए जा सकते हैं. बीच में होना चाहिए 1 और 20 (डिफ़ॉल्ट) सहित.
नतीजों की संख्या की ज़्यादा से ज़्यादा संख्या सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetMaxResultCount()
तरीके को कॉल करें. कम से कम रेटिंग
नतीजों को सिर्फ़ उन लोगों तक सीमित करता है जिनकी औसत उपयोगकर्ता रेटिंग या इस सीमा के बराबर. इसमें मान 0.0 और 5.0 (दोनों शामिल) के बीच होना चाहिए की बढ़ोतरी होगी. उदाहरण के लिए: 0, 0.5, 1.0, ... , 5.0, दोनों शामिल हैं. मान हैं को निकटतम 0.5 तक पूर्णांकित कर दिया जाता है. उदाहरण के लिए, 0.6 की वैल्यू सभी 1.0 से कम रेटिंग वाले नतीजे.
सबसे कम रेटिंग पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetMinRating()
तरीके को कॉल करें.अभी खुला है
अगर
true
है, तो सिर्फ़ उन जगहों को दिखाएं जो कारोबार के लिए खुली हैं क्वेरी भेजते समय. अगर यहfalse
है, तो सभी कारोबारों को वापस करें चाहे ओपन स्टेटस कुछ भी हो. वे स्थान जो Google स्थल डेटाबेस में खुले होने का समय निर्दिष्ट नहीं करते हैं अगर इस पैरामीटर कोfalse
पर सेट किया जाता है, तो यह फ़ंक्शन दिखता है.अभी खोलें पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetOpenNow()
तरीके को कॉल करें.-
कीमत के लेवल
डिफ़ॉल्ट रूप से, नतीजों में ऐसी जगहें शामिल होती हैं जो कीमत के हर लेवल पर सेवाएं देती हैं. पाबंदी लगाने के लिए किसी खास कीमत के लेवल पर सिर्फ़ जगहों को शामिल करने के लिए, नतीजे शामिल होते हैं. की वैल्यू दिखाई जाएगी, जो उन जगहों के कीमत लेवल के मुताबिक होती है जिन्हें आपको लौटाना है:
1
- स्थान सस्ती सेवाएं उपलब्ध कराता है.2
- यहां किफ़ायती शुल्क पर सेवाएं दी जाती हैं.3
- स्थान पर महंगी सेवाएं मिलती हैं.4
- स्थान बहुत महंगी सेवाएं उपलब्ध कराता है.
कीमत लेवल का पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetPriceLevels()
तरीके को कॉल करें. रैंक की प्राथमिकता
यह बताता है कि रिस्पॉन्स में नतीजों को किस तरह के क्वेरी:
- कैटगरी से जुड़ी क्वेरी के लिए, जैसे कि "रेस्टोरेंट इन न्यू यॉर्क सिटी" के लिए,
SearchByTextRequest.RankPreference.RELEVANCE
(खोज प्रासंगिकता के आधार पर रैंक नतीजे) डिफ़ॉल्ट है. आप रैंक की प्राथमिकता कोSearchByTextRequest.RankPreference.RELEVANCE
पर सेट कर सकते हैं याSearchByTextRequest.RankPreference.DISTANCE
(दूरी के हिसाब से नतीजों को रैंक करें). - हमारा सुझाव है कि आप "माउंटेन व्यू, सीए" जैसी कैटगरी से जुड़ी अन्य क्वेरी के लिए जवाब दें आप रैंक प्राथमिकता पैरामीटर को सेट नहीं कर सकते हैं.
रैंक की प्राथमिकता वाला पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetRankPreference()
तरीके को कॉल करें.- कैटगरी से जुड़ी क्वेरी के लिए, जैसे कि "रेस्टोरेंट इन न्यू यॉर्क सिटी" के लिए,
क्षेत्र कोड
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्रीय कोड, जिसे दो वर्ण वाले CLDR कोड की वैल्यू. इस पैरामीटर का पक्षपात भी हो सकता है खोज के नतीजों में दिखने वाला है. कोई डिफ़ॉल्ट मान नहीं है.
अगर जवाब में पता फ़ील्ड में देश का नाम मेल खाता है क्षेत्रीय कोड, पते में देश का कोड शामिल नहीं किया गया है.
ज़्यादातर CLDR कोड, ISO 3166-1 कोड से मेल खाते हैं. इसमें कुछ अहम अपवाद शामिल हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "यूके" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है (तकनीकी तौर पर, इकाई "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन ऐंड नॉदर्न आयरलैंड" है. पैरामीटर, लागू कानून के आधार पर नतीजों पर असर डाल सकता है.
क्षेत्र का कोड पैरामीटर सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetRegionCode()
तरीके को कॉल करें.सख् त प्रकार फ़िल् टरिंग
शामिल करने के टाइप पैरामीटर के साथ इस्तेमाल किया जाता है. जब इस पर सेट किया गया हो
true
, सिर्फ़ वे जगहें जो इसके बताए गए प्रकारों से मेल खाती हैं शामिल प्रकार लौटाए जाते हैं.false
होने पर, डिफ़ॉल्ट जवाब में ऐसी जगहें शामिल हो सकती हैं दर्ज किए गए प्रकारों से मेल नहीं खाता है.सख्त फ़िल्टर टाइप वाले पैरामीटर को सेट करने के लिए,
SearchByTextRequest
ऑब्जेक्ट बनाते समयsetStrictTypeFiltering()
तरीके को कॉल करें.