diff --git a/Runtime/RAG/usearch/NativeMethods.cs b/Runtime/RAG/usearch/NativeMethods.cs index 34ba5898..9f38f04f 100644 --- a/Runtime/RAG/usearch/NativeMethods.cs +++ b/Runtime/RAG/usearch/NativeMethods.cs @@ -11,7 +11,11 @@ namespace Cloud.Unum.USearch { public static class NativeMethods { +#if UNITY_IOS + private const string LibraryName = "__Internal"; +#else private const string LibraryName = "libusearch_c"; +#endif [DllImport(LibraryName, CallingConvention = CallingConvention.Cdecl)] public static extern usearch_index_t usearch_init(ref IndexOptions options, out usearch_error_t error); diff --git a/Runtime/RAG/usearch/USearchIndex.cs b/Runtime/RAG/usearch/USearchIndex.cs index 9c9b39c4..9603e8ac 100644 --- a/Runtime/RAG/usearch/USearchIndex.cs +++ b/Runtime/RAG/usearch/USearchIndex.cs @@ -318,17 +318,10 @@ private int Search(T[] queryVector, int count, out ulong[] keys, out float[] } else { - if (Application.platform == RuntimePlatform.Android) + lock (filterLock) { - lock (filterLock) - { - FilterFunction = filter; - matches = checked((int)usearch_filtered_search(this._index, queryVectorPtr, scalarKind, (UIntPtr)count, StaticFilter, IntPtr.Zero, keys, distances, out error)); - } - } - else - { - matches = checked((int)usearch_filtered_search(this._index, queryVectorPtr, scalarKind, (UIntPtr)count, (int key, IntPtr state) => filter(key), IntPtr.Zero, keys, distances, out error)); + FilterFunction = filter; + matches = checked((int)usearch_filtered_search(this._index, queryVectorPtr, scalarKind, (UIntPtr)count, StaticFilter, IntPtr.Zero, keys, distances, out error)); } } HandleError(error);