Internal ID vs Human-readable Names in Typesense
TLDR Vladimir asked for advice on using internal IDs or full strings in Typesense, highlighting pros and cons of both. Jason advised storing full strings for performance and simplicity, despite potential translation issues.
2
Nov 05, 2023 (3 weeks ago)
Vladimir
07:44 PMFor example, I have a collection with a "customer name" field.
I can store customer names as
int
identifiers and then remap human-readable customer names on the client.Pros:
• I can use different labels for different user locales (translation support) without storing different values for different locales in the collection (so less memory consumption)
Cons:
• It is impossible to search within facet values if this field is a facet. Since the number of facet values can be quite high, and they are paged, it is not possible to do a client-side search.
Is there any guidance or best practices on that?
Also, if I, for example, store the same
string
value in 1kk documents, does the string length affect the RAM consumption, or is it compressed internally?Nov 06, 2023 (3 weeks ago)
Jason
04:00 PMRepeated strings are only stored once in the in-memory index, so it "compresses" effectively.
1
Vladimir
11:21 PMIt has its own downsides:
• To translate the values, instead of doing simple value→label remapping on the client based on the current locale, we have to store values in all languages in separate fields;
• When such a value is renamed by the user, a complex synchronization logic must be implemented. E.g., a bunch of collections has a "customer" field, and if a user renames a customer, this change should be correctly propagated to all collections that use this field. If the value is stored instead of the label, no changes are required in this case (value→label remapping is done on the client dynamically).
Jason
11:36 PM1
Typesense
Indexed 3005 threads (79% resolved)
Similar Threads
Understanding and Implementing Typesense Dart Library with Flutter
Alexandro sought help with the Typesense Dart library. Jason explained that the library is in progress, discussed utilizing other HTTP libraries, and provided detailed instructions on utilizing Typesense with Flutter. Alexandro provided feedback on the Typesense UI and expressed interest in creating a tutorial video.
Troubleshooting Typesense Setup and Understanding Facets and Keywords
Demitri encountered errors when exploring Typesense for the first time. Jason guided them through troubleshooting and discussed facets, keyword settings, and widget configurations. Helin shared a Python demo app and its source code to help Demitri with their project.
Typesense Capabilities and Troubleshooting Queries
A had issues with refinement lists and analytics in Typesense. Jason provided a possible solution and recommended the analytics widget. They clarified import size limits and helped identify a filter issue in A's query. Upgrade options are in Typesense's roadmap.