Elad Chen
11/05/2025, 6:45 PMHung-wei Chuang
11/05/2025, 10:33 PMbest_field_weight and textmatch doesnt reflect the best field, but a lower-weighted fieldGoran Košutić
11/06/2025, 2:59 AMMagne
11/06/2025, 7:43 AMJonatan Jall Jahja
11/06/2025, 9:34 AM{
"vector_query": "embedding:([], queries:[smart phone, apple ipad], query_weights:[0.9, 0.1])"
}
1. Is there a way to do the same thing, but if I have externally-generated vectors?
2. If yes, would it do a nearest neighbour for each vector, or does it just average the vectors according to the weights and run a single nearest neighbour for that average vector?Luís Baía
11/06/2025, 11:14 AM"query_by": "name",
"group_by": "productId",
"group_limit": 1,
"num_typos": 0,
"vector_query": (f"embeddings:([{embeddings}], k:100, alpha:1)"),
"q": search_query,
"per_page": 10,
vs (semantic search alone)
"group_by": "productId",
"group_limit": 1,
"num_typos": 0,
"vector_query": (f"embeddings:([{embeddings}], k:100, alpha:1)"),
"q": "*",
"per_page": 10,
But these are producing very different results. The first one is still definitely influenced by keyword search. Even when I tweak the alpha parameter, I seem to always get the same results.
Could you help me understand these differences? cc @Joao NevesMohsin Malik
11/06/2025, 1:01 PMTodd Tarsi
11/06/2025, 8:15 PMSelect * from a WHERE a.b = 'correct' AND 1=1 AND a.c = 'correct'; The 1=1 lets me basically drop clauses without worrying about the conjoining OR / AND, whether we’re leaving parens or not, etc.
In Typesense, is there a similar way to “skip” a clause by converting it into something like:
filter_by: 'b:=correct && 1=1 && c:=correct'Roland Kriibi
11/06/2025, 8:16 PMRıdvan Çakır
11/07/2025, 8:35 AMJohn
11/07/2025, 1:19 PM"page": 1,
"per_page": 50,
"include_fields": ["owner_article_number", "id", "virtual_id"],
"q": "HH",
"query_by": "owner_article_number",
Returns a document with id: "1412145", virtual_id: 281343, owner_article_number: "HH1500038" (Total 10 hits)
Case 2 - as Case 1 plus:
...
"group_by": "virtual_id",
"group_limit": 99
Does not return any group for virtual_id: 281343 , but 4 other groups with a total of 10 documents (Note, same # as Case 1, but some differences in documents returned)
Case 3 - as Case 2 plus:
...
"filter_by": "virtual_id:281343"
Returns a group for virtual_id: 281343 exactly as expectedRob Bast
11/07/2025, 1:29 PMThomas Reither
11/07/2025, 3:32 PMEmil Privér
11/07/2025, 4:25 PMElad Chen
11/09/2025, 11:03 AMElad Chen
11/09/2025, 2:53 PMThomas Andersson
11/10/2025, 3:49 PMThomas Andersson
11/10/2025, 3:55 PM❯ curl -s -w "\nHTTP Status: %{http_code}\n" \
-H "X-TYPESENSE-API-KEY: motoaction-typesense-dev-key" \
-H "Content-Type: application/json" \
"<http://localhost:8108/synonym_sets>"
{ "message": "Not Found"}
HTTP Status: 404
for example.
While the old endpoints do respond:
curl -s -w "\nHTTP Status: %{http_code}\n" \
-H "X-TYPESENSE-API-KEY: motoaction-typesense-dev-key" \
-H "Content-Type: application/json" \
"<http://localhost:8108/collections/products_se/synonyms>"
{"synonyms":[{"id":"synonym-3542ccf1","root" ......
curl -s -w "\nHTTP Status: %{http_code}\n" -H "X-TYPESENSE-API-KEY: motoaction-typesense-dev-key" -H "Content-Type: application/json" "<http://localhost:8108/debug>"
{"state":1,"version":"30.0.rc29"}
HTTP Status: 200
Also trying "by the book" (RC docs) to create one in case list would not work when there is no sets:
curl "<http://localhost:8108/synonym_sets/clothing-synonyms>" -X PUT -H "Content-Type: application/json" -H "X-TYPESENSE-API-KEY: motoaction-typesense-dev-key" -d '{
"items": [
{
"id": "coat-synonyms",
"synonyms": ["blazer", "coat", "jacket"]
}
]
}'
{ "message": "Not Found"}Seth Thoburn
11/10/2025, 6:49 PMTypesense is an in-memory data store. When you restart the Typesense process, we read the data that was previously sent into Typesense (and stored on disk as a backup) and use it to re-build the in-memory indices. The amount of time this takes depends on the size of your dataset. So until your data is fully re-indexed in RAM, the node will return an HTTP 503.
What is a typical amount of time? For 12M records (about 8GB of RAM) I am seeing 15 minutes. Is that typical or do I likely have something misconfigured?Seth Thoburn
11/11/2025, 3:14 AMSeth Thoburn
11/11/2025, 3:18 AMAshutosh Thakur
11/11/2025, 7:40 AM/import endpoint (sending .jsonl documents).
In our case, we only send delta or updated documents during each sync operation — not the full dataset.
Our goal is to ensure that the collection in Typesense exactly matches the current dataset we have locally. So, we’d like the documents that are not part of the latest bulk write to be automatically deleted from the collection.
Is there a recommended or built-in way to achieve this behavior?
For example, does Typesense support something like a “replace all” or “sync” mode for imports — where it automatically removes documents not present in the latest batch? Or would we need to handle this manually (e.g., track IDs and delete them ourselves)?
Thanks in advance 🙏
cc @Sahil Rally @Atishay JainJohn B
11/11/2025, 1:06 PMSeth Thoburn
11/11/2025, 5:56 PMJakob
11/11/2025, 9:46 PMFederico Bond
11/12/2025, 7:11 AMThomas Imensek
11/12/2025, 8:49 AMJeffrey Greenberg
11/12/2025, 3:35 PMBen Rometsch
11/12/2025, 4:24 PMJohn Sokol
11/12/2025, 10:27 PM