Julian
10/14/2025, 10:18 AMnutritionalValues.{field:=energyCal && perPortion:>200}
Are there any optimization strategies or are we simply using it wrong?Vikas Chawla
10/14/2025, 5:22 PMJames King
10/15/2025, 10:08 AMVidar Brudvik
10/15/2025, 8:11 PMÓscar Vicente
10/16/2025, 9:02 AMÓscar Vicente
10/16/2025, 3:55 PMJochem Top
10/17/2025, 9:46 AMsmileBeda
10/17/2025, 10:40 AMDave
10/17/2025, 2:23 PMSanthosh
10/17/2025, 3:50 PMfilter_by syntax to include only documents that contain a specific field (must_have_field), neglecting any document where the field is entirely missing? Does Typesense have an operator that is equivalent to checking for a non-null or existent field?Balaji SM
10/18/2025, 12:43 PM{
"name": "^cs_.+(_sort)$",
"type": "int32",
"sort": true,
"optional": true,
"index": true,
"facet": false
}
My goal is to allow multiple fields like cs_price_range_float_sort, cs_rating_sort, etc., to be sortable without explicitly defining each one. But when I index a document with:
{
"cs_price_range_float_sort": 100
}
…it doesn’t get picked up by the schema, unless I define the exact field name in the schema.
Is regex-based dynamic field matching supported for sortable fields? Or is the only option to explicitly define each cs_*_sort field in the schema?
Thanks in advance!John B
10/18/2025, 2:24 PMJohn B
10/20/2025, 11:46 AMJohn B
10/20/2025, 11:47 AMnew_in_town
10/20/2025, 3:34 PMllms.txt is a well known hack to feed such documentation into LLM...John B
10/20/2025, 10:55 PMPatrick Gray
10/20/2025, 11:00 PMJohn B
10/20/2025, 11:03 PMJohn B
10/20/2025, 11:05 PMAbtin Okhovat
10/21/2025, 7:33 AMJohn B
10/21/2025, 2:07 PMJohn B
10/21/2025, 2:07 PMRushil Srivastava
10/21/2025, 11:51 PMAditya Verma
10/22/2025, 7:52 AMLuca Lusso
10/22/2025, 9:13 AM/collections endpoint sometimes the embedding field is present, sometime is missing. Embedding is configured to use a LiteLLM instance to compute the vectors. What can be?Melvin Brem
10/22/2025, 11:46 AMKiran Gopalakrishnan
10/22/2025, 3:16 PMstring[] field which has some values that use - , for example: Ford F-150, F-250 etc, I want them to match for any of the following f150 , f-150 , f 150 , i am using token_separators: "-"
on a field level, but this doesn't match for F-150 but seems to work for F150, i tried symbols_to_index:"-" in combination with token_seperators:"-" , It still doesn't match for F-150. Am i doing this wrong ?
I'm on Typesense cloud v29.Dominik Henneke
10/23/2025, 8:26 AMhighlight_full_fields setting in Typesense 29.0 and wonder if we are interpreting the results correctly. When I enable that for a field, then the "snippet" value still has the shortened content, but there is a new "value" field that contains the full string. I didn't found any documentation for this, but is that observation correct that we should use something like highlight.name.value ?? highlight.name.snippet if we want to use the full title?John Doisneau
10/23/2025, 5:08 PMV Parthiban
10/24/2025, 5:32 AM*** (show all): ~2 seconds
• Regular text searches: 1-1.5 seconds
Our query looks like this:
json
{
"q": "*",
"query_by": "properties.EntryName_str,template_fields.Client_sp_ID_arr,template_fields.Client_sp_Name_sp_List_arr,template_fields",
"infix": "always,off,off,off",
"facet_by": "properties.CreatedBy_str,properties.CreatedDate,properties.Extension_str,properties.ModifiedDate,template_fields.Client_sp_ID_arr,template_fields.Client_sp_Name_sp_List_arr,template_fields.Document_sp_Date_str,template_fields.Document_sp_Sub_sp_Type_sp_II_str,template_fields.Document_sp_Sub_sp_Type_sp_II_str,template_fields.Document_sp_Type_str",
"max_facet_values": 20,
"sort_by": "properties.file_modified_date:desc",
"highlight_full_fields": "properties.EntryName_str,template_fields.Client_sp_ID_arr,template_fields.Client_sp_Name_sp_List_arr,template_fields",
"per_page": 100,
"page": 1
}
Schema details:
• All string fields have sort: true enabled in the schema
• Infix is enabled on the first query field (properties.EntryName_str)
System metrics from our instance:
Debug endpoint:
json
{
"state": 4,
"version": "28.0"
}
Health endpoint:
json
{
"ok": true
}
Metrics endpoint:
json
{
"system_cpu1_active_percentage": "0.00",
"system_cpu2_active_percentage": "0.00",
"system_cpu3_active_percentage": "0.00",
"system_cpu4_active_percentage": "0.00",
"system_cpu5_active_percentage": "0.00",
"system_cpu6_active_percentage": "0.00",
"system_cpu7_active_percentage": "0.00",
"system_cpu8_active_percentage": "0.00",
"system_cpu_active_percentage": "0.00",
"system_disk_total_bytes": "105089261568",
"system_disk_used_bytes": "9131921408",
"system_memory_total_bytes": "269206294528",
"system_memory_total_swap_bytes": "511700992",
"system_memory_used_bytes": "64942874624",
"system_memory_used_swap_bytes": "0",
"system_network_received_bytes": "0",
"system_network_sent_bytes": "0",
"typesense_memory_active_bytes": "57420935168",
"typesense_memory_allocated_bytes": "57133960256",
"typesense_memory_fragmentation_ratio": "0.00",
"typesense_memory_mapped_bytes": "59525619712",
"typesense_memory_metadata_bytes": "1849614416",
"typesense_memory_resident_bytes": "57420935168",
"typesense_memory_retained_bytes": "42020577280"
}
Stats endpoint:
json
{
"delete_latency_ms": 0,
"delete_requests_per_second": 0,
"import_latency_ms": 0,
"import_requests_per_second": 0,
"latency_ms": {
"GET /health": 0
},
"overloaded_requests_per_second": 0,
"pending_write_batches": 0,
"requests_per_second": {
"GET /health": 0.5
},
"search_latency_ms": 0,
"search_requests_per_second": 0,
"total_requests_per_second": 0.5,
"write_latency_ms": 0,
"write_requests_per_second": 0
}
Search response details:
json
{
"facet_counts": [
{
"counts": [{"count": 1905194, "highlighted": "ADMIN", "value": "ADMIN"}],
"field_name": "properties.CreatedBy_str"
}
],
"found": 7885266,
"hits": [...],
"out_of": 7885518,
"page": 1,
"request_params": {
"collection_name": "ActiveClientDocuments",
"first_q": "*",
"per_page": 100,
"q": "***"
},
"search_cutoff": false,
"search_time_ms": 2041
}
Question: What's the best way to configure Typesense to get search responses under 100ms for a collection of this size? Are there specific settings or approaches we should be using?
Any help would be appreciated!