             url.append(Query.encodeForQuery(highlightPreTag, withKey: "highlightPreTag"))
             url.append(Query.encodeForQuery(highlightPostTag, withKey: "highlightPostTag"))
         }
+        if let disableTypoToleranceOnAttributes = disableTypoToleranceOnAttributes {
+            url.append(Query.encodeForQuery(disableTypoToleranceOnAttributes, withKey: "disableTypoToleranceOnAttributes"))
+        }
         
         if let insideBoundingBox = insideBoundingBox {
             url.append(insideBoundingBox)
+        } else if let insidePolygon = insidePolygon {
+            url.append(insidePolygon)
         } else if let aroundLatLong = aroundLatLong {
             url.append(aroundLatLong)
         }
         
+        if let aroundPrecision = aroundPrecision {
+            url.append(Query.encodeForQuery(aroundPrecision, withKey: "aroundPrecision"))
+        }
+        if let aroundRadius = aroundRadius {
+            url.append(Query.encodeForQuery(aroundRadius, withKey: "aroundRadius"))
+        }
         if aroundLatLongViaIP {
             url.append(Query.encodeForQuery(aroundLatLongViaIP, withKey: "aroundLatLngViaIP"))
         }

    /// Tags can be used in the Analytics to analyze a subset of searches only.
    public var analyticsTags: [String]?
    
    var aroundLatLongViaIP = false
    var aroundLatLong: String?
    var insideBoundingBox: String?
    
    override public var description: String {
        get { return "Query = \(buildURL())" }

    ///
    /// Note: at indexing, geoloc of an object should be set with _geoloc attribute containing
    /// lat and lng attributes (for example {"_geoloc":{"lat":48.853409, "lng":2.348800}})
    public func searchAroundLatitude(latitude: Float, longitude: Float, maxDistance maxDist: UInt?, precision: UInt?) -> Query {
        aroundLatLong = "aroundLatLng=\(latitude),\(longitude)"
        aroundRadius = maxDist
        aroundPrecision = precision
        return self
    }
    
    /// Search for entries around a given latitude/longitude (using IP geolocation).
    ///
    /// - parameter maxDistance: set the maximum distance in meters. If not set, it uses an automatic radius.
    ///
    /// Note: at indexing, geoloc of an object should be set with _geoloc attribute containing
    /// lat and lng attributes (for example {"_geoloc":{"lat":48.853409, "lng":2.348800}})
    public func searchAroundLatitudeLongitudeViaIP(maxDistance maxDist: UInt? = nil) -> Query {
        aroundRadius = maxDist
        aroundLatLongViaIP = true
        return self
    }
