Yes, it is expected, as Picky returns each instance of a found ID (in each category). The `#ids` method simply collects the ids from each category (combination).
Use the `unique` option (see below) to only return the first instance of a found ID and ignore ones found in following category (combinations). That should resolve your issue. Please let us know if it doesn't.
# This is the main entry point for a query.
#
# Parameters:
# * text: The search text.
# * ids = 20: The amount of ids to calculate (with offset).
# * offset = 0: The offset from which position to return the ids. Useful for pagination.
#
# Options:
# * unique: Whether to return unique ids.
#
# Note: The Rack adapter calls this method after unravelling the HTTP request.
#
def search text, ids = 20, offset = 0, options = {}