পাঠ্য অনুসন্ধান (নতুন)

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

টেক্সট সার্চ (নতুন) একটি স্ট্রিং-এর উপর ভিত্তি করে একগুচ্ছ স্থান সম্পর্কে তথ্য প্রদান করে (উদাহরণস্বরূপ, "নিউ ইয়র্কে পিৎজা" বা "অটোয়ার কাছে জুতার দোকান" বা "১২৩ মেইন স্ট্রিট")। পরিষেবাটি টেক্সট স্ট্রিংটির সাথে মিলে যাওয়া স্থানগুলির একটি তালিকা এবং সেট করা যেকোনো অবস্থানগত পক্ষপাত সহ প্রতিক্রিয়া জানায়।

প্রয়োজনীয় প্যারামিটারগুলোর পাশাপাশি, টেক্সট সার্চ (নতুন) আরও ভালো ফলাফলের জন্য ঐচ্ছিক প্যারামিটার ব্যবহার করে কোয়েরি পরিমার্জন করার সুবিধা দেয়।

টেক্সট সার্চ (নতুন) নিয়ারবাই সার্চ (নতুন) -এর অনুরূপ। উভয়ের মধ্যে প্রধান পার্থক্য হলো, টেক্সট সার্চ (নতুন) আপনাকে যেকোনো সার্চ স্ট্রিং নির্দিষ্ট করার সুযোগ দেয়, কিন্তু নিয়ারবাই সার্চ (নতুন)-এর জন্য অনুসন্ধানের জন্য একটি নির্দিষ্ট এলাকার প্রয়োজন হয়।

টেক্সট অনুসন্ধানের অনুরোধ

একটি টেক্সট সার্চ অনুরোধের ধরণটি হলো:

// 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();
    });

এই উদাহরণে, আপনি:

  • ফিল্ড লিস্টটি এমনভাবে সেট করুন যাতে শুধু Place.Field.ID এবং Place.Field.DISPLAY_NAME অন্তর্ভুক্ত থাকে। এর মানে হলো, রেসপন্সে থাকা প্রতিটি মিলে যাওয়া স্থানকে প্রতিনিধিত্বকারী Place অবজেক্টগুলোতে কেবল এই দুটি ফিল্ডই থাকবে।

  • সার্চটি নির্ধারণ করার জন্য SearchByTextRequest.Builder ব্যবহার করে একটি SearchByTextRequest অবজেক্ট তৈরি করুন।

    • টেক্সট কোয়েরি স্ট্রিংটি "Spicy Vegetarian Food" এ সেট করুন।

    • ফলাফলের স্থানের সর্বোচ্চ সংখ্যা ১০-এ সেট করুন। ডিফল্ট এবং সর্বোচ্চ সংখ্যা হলো ২০।

    • অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক দ্বারা নির্ধারিত আয়তক্ষেত্রের মধ্যে অনুসন্ধান এলাকা সীমাবদ্ধ করুন। এই এলাকার বাইরের কোনো ফলাফল ফেরত দেওয়া হবে না।

  • একটি 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.DISPLAY_NAME);

এই ফিল্ড তালিকার অর্থ হলো, রেসপন্সের প্রতিটি Place অবজেক্টে মিলে যাওয়া প্রতিটি স্থানের শুধুমাত্র প্লেস আইডি এবং নাম থাকে। এরপর আপনি প্রতিটি Place অবজেক্টের এই ফিল্ডগুলো অ্যাক্সেস করার জন্য Place.getId() এবং Place.getName() মেথডগুলো ব্যবহার করতে পারেন।

একটি Place অবজেক্টে ডেটা অ্যাক্সেস করার আরও উদাহরণের জন্য, Access Place object data fields দেখুন।

পৃষ্ঠা সংখ্যা

টেক্সট সার্চের SearchByTextResponse ক্লাসটি তার getPagination() মেথডের মাধ্যমে টেক্সট সার্চ রেজাল্টের পেজিনেশন ব্যবহারের সুযোগ দেয়, যা একটি Pagination অবজেক্ট রিটার্ন করে।

ফলাফলের অতিরিক্ত পৃষ্ঠা আছে কিনা তা জানতে Pagination অবজেক্টের hasNextPage() মেথডটি ব্যবহার করুন। এই মেথডটি একটি বুলিয়ান মান (true বা false) রিটার্ন করে।

যতক্ষণ hasNextPage() ট্রু রিটার্ন করে, ততক্ষণ ফলাফলের পরবর্তী পৃষ্ঠাটি আনার জন্য fetchNextPage() মেথডটি কল করুন।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে পরবর্তী পৃষ্ঠা উপলব্ধ আছে কিনা তা পরীক্ষা করতে হয় এবং তারপর পৃষ্ঠাটি লোড করতে হয়।

কোটলিন

val searchByTextRequest =
      searchByTextRequest("restaurants", Arrays.asList(Place.Field.NAME)) {
        maxResultCount = 10
      }

// using pagination object (Preferred)
placesClient.searchByText(searchByTextRequest)   
    .addOnSuccessListener {response: SearchByTextResponse ->
        val places = response.places

        val pagination = response.pagination

        if (pagination.hasNextPage()) {
            pagination.setPageSize(20)
            pagination.fetchNextPage()
                    .addOnSuccessListener { nextPageResponse ->
                          val nextPagePlaces = nextPageResponse.getPlaces()
                    }
                    .addOnFailureListener {// Handle error with given status code}
        }
}
.addOnFailureListener {
// TODO: Handle error with given status code.
exception -> {
          exception.printStackTrace();
        }
}

জাভা

SearchByTextRequest searchByTextRequest =
  SearchByTextRequest.builder("restaurants", Arrays.asList(Place.Field.NAME)).setMaxResultCount(10).build();

// using pagination object (Preferred)
placesClient.searchByText(searchByTextRequest)
  .addOnSuccessListener((response) -> {
    List<Place> places = response.getPlaces();
    Log.i(TAG, "Places result: " + places);

    Pagination pagination =
      response.getPagination();

    if (pagination.hasNextPage()) {
      pagination.setPageSize(20); // change the page size from 10 to 20
      pagination.fetchNextPage()
    	  .addOnSuccessListener((nextPageResponse) -> {
            List<Place> nextPagePlaces = nextPageResponse.getPlaces();
            Log.i(TAG, "Next page places result: " + nextPagePlaces);
        });
    }
  })
  .addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
    	// Handle error with given status code
    }
  });

প্রয়োজনীয় প্যারামিটার

SearchByTextRequest এর জন্য প্রয়োজনীয় প্যারামিটারগুলো হলো:

  • ক্ষেত্রের তালিকা

    কোন কোন স্থানের ডেটা ফিল্ড ফেরত দেওয়া হবে তা নির্দিষ্ট করুন। ফেরতযোগ্য ডেটা ফিল্ডগুলো নির্দিষ্ট করে Place.Field ভ্যালুগুলোর একটি তালিকা পাস করুন। রেসপন্সে ফেরত আসা ফিল্ডগুলোর কোনো ডিফল্ট তালিকা থাকে না।

    ফিল্ড লিস্ট একটি ভালো ডিজাইন পদ্ধতি, যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটা অনুরোধ করছেন না, এবং এর ফলে অপ্রয়োজনীয় প্রসেসিং সময় ও বিলিং চার্জ এড়ানো যায়।

    নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:

    • নিম্নলিখিত ফিল্ডগুলি টেক্সট সার্চ এসেনশিয়ালস আইডি অনলি এসকেইউ (Text Search Essentials ID Only SKU) সক্রিয় করে:

      Place.Field.DISPLAY_NAME *
      Place.Field.NAME এর পরিবর্তে ব্যবহার করুন (সংস্করণ ৪.০ থেকে অপ্রচলিত)।
      Place.Field.ID
      Place.Field.RESOURCE_NAME *
      * এতে places/PLACE_ID ) আকারে স্থানের রিসোর্স নামটি থাকে।
      স্থানটির লিখিত নাম দেখতে DISPLAY_NAME ব্যবহার করুন।
    • নিম্নলিখিত ফিল্ডগুলি টেক্সট সার্চ প্রো SKU সক্রিয় করে:

      Place.Field.ACCESSIBILITY_OPTIONS *
      Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE (অপ্রচলিত)-এর পরিবর্তে ব্যবহার করুন।
      Place.Field.ADDRESS_COMPONENTS
      Place.Field.ADR_FORMAT_ADDRESS
      Place.Field.BUSINESS_STATUS
      Place.Field.FORMATTED_ADDRESS করা ঠিকানা *
      Place.Field.ADDRESS (অপ্রচলিত) এর পরিবর্তে ব্যবহার করুন।
      Place.Field.GOOGLE_MAPS_URI
      Place.Field.ICON_BACKGROUND_COLOR
      Place.Field.ICON_MASK_URL *
      Place.Field.ICON_URL (অপ্রচলিত)-এর পরিবর্তে ব্যবহার করুন।
      Place.Field.LOCATION *
      Place.Field.LAT_LNG (অপ্রচলিত)-এর পরিবর্তে ব্যবহার করুন।
      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
    • নিম্নলিখিত ফিল্ডগুলি টেক্সট সার্চ এন্টারপ্রাইজ SKU সক্রিয় করে:

      Place.Field.CURRENT_OPENING_HOURS
      Place.Field.CURRENT_SECONDARY_OPENING_HOURS
      Place.Field.INTERNATIONAL_PHONE_NUMBER *
      Place.Field.PHONE_NUMBER এর পরিবর্তে এটি ব্যবহার করুন, যা এখন আর ব্যবহৃত হয় না।
      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 *
      Place.Field.USER_RATINGS_TOTAL এর পরিবর্তে এটি ব্যবহার করুন, যা এখন আর ব্যবহৃত হয় না।
      Place.Field.WEBSITE_URI
    • নিম্নলিখিত ফিল্ডগুলি টেক্সট সার্চ এন্টারপ্রাইজ প্লাস SKU সক্রিয় করে:

      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

    ফিল্ড লিস্ট প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setPlaceFields() মেথডটি কল করুন।

  • টেক্সট কোয়েরি

    যে টেক্সট স্ট্রিংটির উপর ভিত্তি করে অনুসন্ধান করতে হবে, যেমন: "restaurant", "123 Main Street", অথবা "best place to visit in San Francisco"। এপিআই এই স্ট্রিংটির উপর ভিত্তি করে সম্ভাব্য ফলাফলগুলো ফেরত দেয় এবং তাদের অনুভূত প্রাসঙ্গিকতা অনুসারে সাজিয়ে রাখে।

    টেক্সট কোয়েরি প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setTextQuery() মেথডটি কল করুন।

ঐচ্ছিক পরামিতি

আপনার অনুরোধের জন্য ঐচ্ছিক প্যারামিটারগুলো নির্দিষ্ট করতে SearchByTextRequest অবজেক্টটি ব্যবহার করুন।

  • অন্তর্ভুক্ত প্রকার

    টেবিল A ​​দ্বারা সংজ্ঞায়িত নির্দিষ্ট ধরণের সাথে মেলে এমন স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। শুধুমাত্র একটি ধরণ নির্দিষ্ট করা যেতে পারে। উদাহরণস্বরূপ:

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

    অন্তর্ভুক্ত টাইপ প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setIncludedType() মেথডটি কল করুন।

  • অবস্থানগত পক্ষপাত

    অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। এই অবস্থানটি একটি পক্ষপাত হিসেবে কাজ করে, যার অর্থ হলো নির্দিষ্ট এলাকার বাইরের ফলাফলসহ, নির্দিষ্ট অবস্থানের আশেপাশের ফলাফলগুলোও ফেরত দেওয়া হতে পারে।

    আপনি অবস্থান সীমাবদ্ধতা বা অবস্থান পক্ষপাত নির্দিষ্ট করতে পারেন, কিন্তু উভয়ই নয়। অবস্থান সীমাবদ্ধতাকে এমন একটি অঞ্চল নির্দিষ্ট করা হিসাবে ভাবুন যার মধ্যে ফলাফল অবশ্যই থাকতে হবে, এবং অবস্থান পক্ষপাতকে এমন একটি অঞ্চল নির্দিষ্ট করা হিসাবে ভাবুন যার মধ্যে বা কাছাকাছি ফলাফল থাকার সম্ভাবনা রয়েছে — মনে রাখবেন যে অবস্থান পক্ষপাত ব্যবহার করার সময়ও ফলাফল নির্দিষ্ট এলাকার বাইরে থাকতে পারে।

    অঞ্চলটিকে একটি আয়তাকার ভিউপোর্ট অথবা একটি বৃত্ত হিসাবে নির্দিষ্ট করুন।

    • একটি বৃত্তকে তার কেন্দ্রবিন্দু এবং মিটারে এককে পরিমাপ করা ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধটি অবশ্যই ০.০ থেকে ৫০০০০.০-এর মধ্যে হতে হবে। উদাহরণস্বরূপ:

      // 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();
    • একটি আয়তক্ষেত্র হলো একটি অক্ষাংশ-দ্রাঘিমাংশ ভিউপোর্ট, যা দুটি কর্ণানুযায়ী বিপরীত নিম্ন ও উচ্চ বিন্দু দ্বারা উপস্থাপিত হয়। নিম্ন বিন্দুটি আয়তক্ষেত্রটির দক্ষিণ-পশ্চিম কোণকে এবং উচ্চ বিন্দুটি এর উত্তর-পূর্ব কোণকে নির্দেশ করে।

      একটি ভিউপোর্টকে একটি বদ্ধ অঞ্চল হিসেবে বিবেচনা করা হয়, যার অর্থ এটি তার সীমানাকে অন্তর্ভুক্ত করে। অক্ষাংশের সীমা অবশ্যই -৯০ থেকে ৯০ ডিগ্রির মধ্যে হতে হবে এবং দ্রাঘিমাংশের সীমা অবশ্যই -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হতে হবে।

      • যদি low = high , তাহলে ভিউপোর্টটি সেই একক বিন্দুটি নিয়ে গঠিত হয়।
      • যদি low.longitude > high.longitude , তাহলে দ্রাঘিমাংশের পরিসরটি উল্টে যায় (ভিউপোর্টটি ১৮০ ডিগ্রি দ্রাঘিমা রেখা অতিক্রম করে)।
      • যদি low.longitude = -180 ডিগ্রি এবং high.longitude = 180 ডিগ্রি হয়, তাহলে ভিউপোর্টে সমস্ত দ্রাঘিমাংশ অন্তর্ভুক্ত থাকবে।
      • যদি low.longitude = 180 ডিগ্রি এবং high.longitude = -180 ডিগ্রি হয়, তাহলে দ্রাঘিমাংশের পরিসরটি খালি থাকে।
      • যদি low.latitude > high.latitude হয়, তাহলে অক্ষাংশের পরিসরটি খালি থাকে।

      নিম্ন এবং উচ্চ উভয়ই অবশ্যই পূরণ করতে হবে এবং প্রদর্শিত বক্সটি খালি থাকতে পারবে না। একটি খালি ভিউপোর্টের ফলে ত্রুটি দেখা দেয়।

      উদাহরণস্বরূপ, একটি আয়তাকার ভিউপোর্টের জন্য টেক্সট সার্চ অনুরোধগুলো দেখুন।

      লোকেশন বায়াস প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setLocationBias() মেথডটি কল করুন।

  • অবস্থান সীমাবদ্ধতা

    অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না। অঞ্চলটিকে একটি আয়তক্ষেত্রাকার ভিউপোর্ট হিসেবে নির্দিষ্ট করুন। ভিউপোর্ট নির্ধারণ সংক্রান্ত তথ্যের জন্য ‘লোকেশন বায়াস’ -এর বিবরণ দেখুন।

    আপনি অবস্থানগত সীমাবদ্ধতা বা অবস্থানগত পক্ষপাত নির্দিষ্ট করতে পারেন, কিন্তু উভয়ই নয়। অবস্থানগত সীমাবদ্ধতাকে এমন একটি অঞ্চল নির্দিষ্ট করা হিসাবে ভাবুন যার মধ্যে ফলাফল অবশ্যই থাকতে হবে, এবং অবস্থানগত পক্ষপাতকে এমন একটি অঞ্চল নির্দিষ্ট করা হিসাবে ভাবুন যার কাছাকাছি ফলাফল অবশ্যই থাকতে হবে কিন্তু তা ওই এলাকার বাইরেও হতে পারে।

    অবস্থান সীমাবদ্ধতার প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setLocationRestriction() মেথডটি কল করুন।

  • সর্বোচ্চ ফলাফল সংখ্যা

    ফেরত দেওয়া স্থানের ফলাফলের সর্বোচ্চ সংখ্যা নির্দিষ্ট করে। সংখ্যাটি অবশ্যই ১ থেকে ২০ (ডিফল্ট) এর মধ্যে হতে হবে।

    সর্বোচ্চ ফলাফল সংখ্যা প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setMaxResultCount() মেথডটি কল করুন।

  • সর্বনিম্ন রেটিং

    ফলাফল শুধুমাত্র তাদের মধ্যেই সীমাবদ্ধ থাকবে যাদের গড় ব্যবহারকারী রেটিং এই সীমার সমান বা তার বেশি। মান অবশ্যই ০.০ থেকে ৫.০ (উভয়সহ) এর মধ্যে ০.৫ এর গুণিতকে হতে হবে। উদাহরণস্বরূপ: ০, ০.৫, ১.০, ... , ৫.০ (উভয়সহ)। মান নিকটতম ০.৫ এ উন্নীত করা হয়। উদাহরণস্বরূপ, ০.৬ মানটি ১.০ এর কম রেটিংযুক্ত সমস্ত ফলাফল বাদ দিয়ে দেয়।

    সর্বনিম্ন রেটিং প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setMinRating() মেথডটি কল করুন।

  • এখন খোলা

    যদি true , তাহলে কোয়েরি পাঠানোর সময় শুধুমাত্র সেই স্থানগুলোই ফেরত দেওয়া হবে যেগুলো ব্যবসার জন্য খোলা আছে। যদি false , তাহলে খোলা থাকার অবস্থা নির্বিশেষে সমস্ত ব্যবসা ফেরত দেওয়া হবে। আপনি যদি এই প্যারামিটারটি ' false সেট করেন, তাহলে Google Places ডেটাবেসে যেসব স্থানের খোলার সময় উল্লেখ করা নেই, সেগুলোও ফেরত দেওয়া হবে।

    'open now' প্যারামিটারটি সেট করতে, 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 হলো "uk" (.co.uk), যেখানে এর ISO 3166-1 কোড হলো "gb" (যা প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" সত্তাটিকে বোঝায়)। প্রযোজ্য আইনের উপর ভিত্তি করে এই প্যারামিটারটি ফলাফলকে প্রভাবিত করতে পারে।

    রিজিওন কোড প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setRegionCode() মেথডটি কল করুন।

  • কঠোর প্রকার ফিল্টারিং

    include type প্যারামিটারের সাথে ব্যবহৃত হয়। যখন এটি true তে সেট করা হয়, তখন শুধুমাত্র include type দ্বারা নির্দিষ্ট করা টাইপগুলোর সাথে মেলে এমন স্থানগুলোই ফেরত দেওয়া হয়। যখন এটি false (যা ডিফল্ট) থাকে, তখন রেসপন্সে এমন স্থানও থাকতে পারে যা নির্দিষ্ট টাইপগুলোর সাথে মেলে না।

    কঠোর টাইপ ফিল্টারিং প্যারামিটার সেট করতে, SearchByTextRequest অবজেক্টটি তৈরি করার সময় setStrictTypeFiltering() মেথডটি কল করুন।