A comparison between Indices and UniqueVector on my machine:
julia> using Dictionaries, UniqueVectors, BenchmarkTools
julia> uv = UniqueVector{String}()
0-element UniqueVector{String}
julia> for i in 1:1000
push!(uv, "foo_$i")
end;
julia> is = Indices{String}()
0-element Indices{String}
julia> for i in 1:1000
insert!(is, "foo_$i")
end;
julia> @btime "foo_500" in $uv
13.230 ns (0 allocations: 0 bytes)
true
julia> @btime "foo_500" in $is
12.747 ns (0 allocations: 0 bytes)
true
julia> @btime findfirst(isequal("foo_500"), $uv)
14.918 ns (0 allocations: 0 bytes)
500
julia> @btime gettoken($is, "foo_500")[2][2]
12.546 ns (0 allocations: 0 bytes)
500
julia> Base.summarysize(uv)
92765
julia> Base.summarysize(is)
63813
so they seem pretty similar performance-wise, but Indices seems to have the edge, also Indices seems more memory optimized