https://typesense.org logo
Join Slack
Powered by
# community-help
  • a

    Ahamed Asif

    08/14/2025, 12:14 PM
    We have a search scenario where a client searches within a 10 km radius. Outlets are only valid if they can serve that location and their own service radius covers the client’s location. Even if an outlet is physically within 10 km, it should be excluded if its service radius doesn’t reach the client. can we implement a solution like this in typesense
    a
    • 2
    • 2
  • j

    Jeremy Veto

    08/14/2025, 4:53 PM
    Anyone know why I am getting "48" found, but 0 hits in my query response?
    • 1
    • 1
  • n

    new_in_town

    08/16/2025, 2:21 PM
    About "query language" of
    q
    . I have a search form using Typesense. My SearchParams and schema:
    Copy code
    {
            'q': searchTerm,
            'drop_tokens_threshold': 0,
            'num_typos': 0,
            'prefix': true,
            'filter_by': filterBy,
            'sort_by': sortBy,
            'query_by': query_by,
            'vector_query': vector_query,
            "rerank_hybrid_matches": true,
            'exclude_fields': 'embedding',
            'prioritize_num_matching_fields': false,
            'per_page': perPage,
            'page': pageNum
     }
     ...
     {
      "symbols_to_index": ["+", "/"],
      "token_separators": ["/", "-", "|"],
      "enable_nested_fields": true,
      "fields": [
        {
          "name":   "title",
          "type":   "string"
        },
       {
          "name":   "content_ind",
          "type":   "string"
        },
        {
          "name": "embedding",
          "type": "float[]",
          "embed": {
            "from": [
              "title",
              "content_ind"
            ],
            "model_config": {
              "model_name": "ts/jina-embeddings-v2-base-en"
            }
          }
        },
        ...
    "search-as-you-type" not used - user should type a query in the query field (this goes in into
    searchTerm
    and into
    q
    ) and press Enter. No special widget used, no InstantSearch.js, pure JS implementation calling "typesense" lib:
    ...documents().search( tsSearhParams )
    User can select some filters in some dropdowns, can change sort order -> this changes
    filterBy
    ,
    sortBy
    variables. User can select one of
    semantic search
    ,
    keyword search
    ,
    hybrid search
    in the UI -> this changes
    query_by
    and
    vector_query
    variables. And, to explain "query language" I wrote this end-user help text:
    Copy code
    Use "*" (wildcard operator) as the search string to return all elements.
    Surround words with double quotes to do an exact phrase search. This works in "Hybrid search" and in "Keyword search" mode.
    To exclude words in your query explicitly, prefix the word with the - operator. This works in "Hybrid search" and in "Keyword search" mode.
    QUESTION: am I missing something? Is it a correct description ? Some other tricks? I think that "query language" changes depending on SearchParams ( Semantic search vs Keyword search query language?) and collection Schema. Would be great to have some explanation of this. Prodably - some kind of
    Copy code
    function generateQueryLanguageHelpString( SearchParams, Schema )
    f
    • 2
    • 2
  • d

    Diego Chacón Sanchiz

    08/18/2025, 9:17 AM
    In our Typesense v29.0 cluster, we’re observing something unexpected in our active monitoring dashboards: The total_requests_per_second metric is consistently higher than search_requests_per_second, even though the workload is mostly read/search only. We’ve verified that write/import/delete traffic is minimal or zero. Is this expected behavior? Just trying to understand what exactly is being measured so we can adjust our alerts accordingly. Thanks in advance!
    a
    • 2
    • 3
  • n

    Nicolas

    08/18/2025, 12:34 PM
    Hello! I'm using typesense in a intensive write environment. I'm using client side batching, and server side batching in default (40). I'm inserting/updating nearly 20 million documents continually within two hours, but I'm suffering from a bottleneck. I'm using 4VCPU + 16gb machine with v29. Are there any best practices or tips in these use cases?
    a
    k
    • 3
    • 15
  • j

    Jack Driscoll

    08/18/2025, 7:43 PM
    Hi! I'm curious about the logs of typesense. Is there any documentation on the type of logs that may be emitted? Maybe something to differentiate severities like error, warning, info, debug etc For context, I'm forwarding my logs to a GCP ops agent so I can view them without SSH'ing into the VM, but there's a lot of logs I don't need. Ideally I just see errors or "important" logs. (It costs $ to bring the logs to GCP so trying to budget that)
    k
    • 2
    • 1
  • a

    Ashutosh Thakur

    08/19/2025, 9:46 AM
    Hi typesense team, Can someone please tell me is there any way to get the alert of the billing by typesense (on mail or slack or to personal phone no as sms or whatsapp)
    ✅ 1
    j
    p
    • 3
    • 5
  • a

    Ahamed Asif

    08/19/2025, 11:55 AM
    hi typesense team i have a question about the preset so i have a preset like this { "collection": "Outlet_Collection", "exclude_fields": "embedding", "filter_by": "place_location:(6.887273148406498,79.88366548465744,10 km)", "q": "*", "sort_by": "place_ratingdesc,popularitydesc" } but i want add query on top of this is it possible
    h
    • 2
    • 1
  • h

    Hamp Goodwin

    08/19/2025, 7:04 PM
    🧵 I'm working on building a collection which has an object type field. Is it possible to define the types in the object as well? I've noticed that whether I flatten or use this syntax, the nested fields defined in schema do not show up until I've added documents to the collection which are objects meeting the schema I've defined. I am trying to understand a couple of things: what is the proper way to give type definition to the object in typesense. I am also trying to understand how to add sorting to the nested objects string fields
    j
    • 2
    • 3
  • k

    Karel du Preez

    08/20/2025, 6:21 AM
    Hi Typsense team, when trying to search for 1.5mm Twin & Earth wire, you have to put in the mm to get to the item. if you only put in 1.5 twin & earth you do not get to the item. Interestingly when you search for 6mm Twin & Earth you can only insert 6 twin and you will finf the item. It seems the dot is the issue ex 1.5 please can anyone assist how we can get past this?
    f
    j
    • 3
    • 2
  • m

    Marri Shiva

    08/20/2025, 8:51 AM
    Hi Team, I’m using Typesense (
    multi_search
    endpoint) and noticed that the
    exclude_fields
    parameter does not seem to work as expected. For example, here’s my search payload:
    Copy code
    {
      "searches": [
        {
          "collection": "qa-products",
          "q": "*",
          "query_by": "pName,pAlias,pBrand,CardType,sName",
          "exclude_fields": "pPrice",
          "facet_by": "CardType,pBrand,sID",
          "page": 1,
          "per_page": 250,
          "sort_by": "AttribRank:asc,pGroup:asc,pGroupItemDate:desc",
          "filter_by": "(sID:=[0cppGlK500aS1000000])&&(pActive:=[true])&&(pVisibility:=[true])&&(SAC_Activated:=[true])&&(pAttribStatus:=[Active])"
        }
      ]
    }
    Even though I’ve specified
    exclude_fields: "pPrice"
    , the
    pPrice
    field still appears in the
    hits
    response. When I switch to
    include_fields
    , it works correctly and hides the fields I don’t want. Is this a known issue or limitation with
    exclude_fields
    (especially in multi-search)? If so, is there a recommended workaround or plan to fix it in future releases?
    h
    • 2
    • 8
  • g

    Gauthier PLM

    08/20/2025, 9:08 AM
    Hello 🙂 Is it possible to facet the field of an object? I tried to define the facet of
    thematics.label
    , but since I provide the whole object and not the index, it does not seem to be properly indexed. I have done a similar thing on another object, where instead of being optional, the field is mandatory, and typesense did not accept the data, complaining that
    <field>.label
    is missing. this is the company I have:
    Copy code
    {
      name: "companies",
      fields: [
        {
          name: "id",
          type: "string",
          index: false,
        },
        {
          name: "name",
          type: "string",
          infix: true,
          stem: true,
        },
        {
          name: "logo_id",
          type: "string",
          optional: true,
          index: false,
        },
        {
          name: "thematics.label",
          type: "string[]",
          facet: true,
          optional: true,
        },
        {
          name: "segments.label",
          type: "string[]",
          facet: true,
          optional: true,
        },
        {
          name: "location",
          type: "string",
          facet: true,
          optional: true,
        },
        {
          name: "ownership",
          type: "string",
          facet: true,
          optional: true,
        },
        {
          name: "restricted_users",
          type: "string[]",
          optional: true,
        },
      ],
      enable_nested_fields: false,
    }
    And a payload example:
    Copy code
    [
      {
        "id": "019685f4-cabb-a16e-c35d-c61f153767bf",
        "name": "Atlantica Digital",
        "logo_id": "companies/rec3SnmvjJJRERSIw",
        "thematics": [{"id": 1330, "type": "THEMATIC_V2", "label": "Professional & IT services", "order": "c0AW"}, {"id": 1333, "type": "THEMATIC_V2", "label": "Niche Verticals", "order": "c0AZ"}, {"id": 1338, "type": "THEMATIC_V2", "label": "Cybersecurity", "order": "c0Ae"}],
        "segments": [{"id": 1461, "type": "SEGMENT_V2", "label": "System Integrator", "order": "c0B0"}, {"id": 1487, "type": "SEGMENT_V2", "label": "Telecommunication", "order": "c0BQ"}],
        "location": "Italy",
        "ownership": "PE Owned",
        "restricted_users": null
      }
    ]
    f
    • 2
    • 2
  • g

    Gauthier PLM

    08/20/2025, 9:10 AM
    Crapy, why doesn't slack collapse the code like Teams or Discord? 😞
    h
    • 2
    • 1
  • n

    new_in_town

    08/20/2025, 10:32 AM
    Hi all, Typesense supports querying for similar documents, which is great. In my case I have string fields "content" and "tags".
    content
    is a screen-long text about everything and anything.
    tags
    is about 3 to 20 words, something like "Mozart, Bach" or "Deep Purple, Rainbow". Only music genres extracted from content. Imagine, I have
    embedding_content
    ,
    embedding_tags
    for both fields - I can have more than one embedding per document, right? Now, for a document
    X
    I want to find documents with similar music genres (NOT documents having similar fluff in content) can I do something like this?
    Copy code
    curl '<http://localhost:8108/multi_search>' \
      -X POST \
      -H "X-TYPESENSE-API-KEY: ${TYPESENSE_API_KEY}" \
      -d '{
            "searches": [
              {
                "collection": "docs",
                "q": "*",
                "vector_query": "embedding_tags:([], id: X)"
              }
            ]
          }'
    f
    • 2
    • 2
  • j

    Joe Woodhead

    08/20/2025, 1:53 PM
    Hey all, our production HA cluster has a massive discrepancy in the memory usage between nodes and I was hopefully looking for some clarity on what causes it so we can try and prevent it varying so wildly I couldn't spot anything related to that specifically in any of the docs
    • 1
    • 1
  • f

    Federico Villa

    08/20/2025, 2:48 PM
    Hey everyone, We upgraded our
    typesense-instantsearch-adapter
    from
    v2.8.0
    to
    v2.9.0
    , and started seeing a lot of
    multi_search
    requests firing up - We haven't changed the application code, just a version upgrade. We are using:
    react-instantsearch-dom v6.40.4
    with Higher Order components. Is the adapter version
    2.9.0
    compatible with the specified
    react-instantsearch-dom
    library? if not, would upgrading it to the latest version help here?
    p
    y
    p
    • 4
    • 5
  • m

    Malik

    08/21/2025, 4:06 AM
    Does typesense have an official MCP server?
    p
    • 2
    • 1
  • a

    Abdul Halim Rafi

    08/21/2025, 8:59 AM
    Hey everyone, I am using hybrid search. The embedding is being used through OpenAI as provider. While searching, it says
    Copy code
    RequestMalformed: Request failed with HTTP code 400 | Server said: Prefix search is not supported for remote embedders. Please set `prefix=false` as an additional search parameter to disable prefix searching
    Setting
    prefix=false
    did work. But we are loosing some basic semantic search. eg. Keyword
    Apple
    doesn't work where the content has this kind of matching
    ... Apple's ...
    . So, it's missing documents where it has and single quote. But, without the vector search it works. Asking for suggestions and help on how can we take the best of Hybrid search. Thanks 🙏
    f
    • 2
    • 12
  • h

    Hari Naga Pandia Rajan .D

    08/21/2025, 9:00 AM
    👋 Hello team, We’re currently facing an issue with our application related to combination mapping of records for 33 facet values. When generating all combinations, the total number of records has reached around 8 million (80 lakhs), which is starting to cause performance concerns. To handle this, instead of flattening the data, we tried storing it as stringified arrays (
    []
    ). The data loads correctly, but before moving forward, I wanted to check: • Does Typesense support filtering on stringified arrays (
    []
    ) in cascading filters? • Will it behave the same as flat JSON structures when used with the InstantSearch frontend service? Also, since the performance is slowing down with each selection in the frontend, are there any suggestions or best practices to handle such a large dataset more efficiently? Any recommendations to improve speed and responsiveness would be greatly appreciated.
    f
    p
    • 3
    • 3
  • j

    Jesper Møjbæk

    08/21/2025, 11:13 AM
    Is it not possible to sort locale specific characters, like å, ä and ö? ö is placed currently next to o instead of after z. Should it not be locale aware?
    k
    • 2
    • 2
  • s

    Stan Fieuws

    08/21/2025, 12:38 PM
    Hi all. We are currently using Typesense in some of our projects and we have really good results with it. However, to be fully feature complete, we are actually waiting for the possibility to facet on attributes from joined entities (should be available in v30). Is there a vague idea when this will be available? Is this still this year or will it be for next year. Would it be possible to narrow it down to a month? Thank you for the answer
    k
    w
    p
    • 4
    • 4
  • d

    Dave

    08/21/2025, 8:00 PM
    Hi, one of my production nodes jumped from 20% usage to 100% since 5pm (CET). I modified my cluster to have 4 cpus and 8gb now but it is taking almost 2 hours now to configure the change. I wouldn't say that my collection is big. Is this normal? Can someone reach out to me and help me understand what his happening?
    p
    a
    • 3
    • 4
  • l

    Lilly Jeba

    08/22/2025, 6:00 AM
    Hi Everyone, we're building a search-based application (from Typesense) with around 33 facets (e.g., Make, Model, Year, Variant, Powertrain, etc.) where users apply cascading filters — selecting a value in one facet should dynamically update the options in related facets. For example, choosing
    Make: Aion
    should restrict
    Model
    to only those related to Aion like
    Model: SS
    , and further restrict
    Model Year
    to only valid years like
    2017
    , and so on. Initially, we solved this by flattening all possible combinations per idea into separate records — for example:
    Copy code
    {
      "make": "Aion",
      "model": "SS",
      "modelyear": "2017",
      "variant": "Knight Edition",
      "powertrain": "Hybrid",
      "projectcode": "JUN23V1"
    }
    But this leads to combinatorial explosion. Just 80 ideas generate 8 million records due to all the nested combinations. At scale (e.g., 500+ ideas), this becomes unmanageable in terms of performance and indexing time. To solve this, we changed the data structure to store each field as an array (stringified or native), like this: "projects": [ { "attribute_make": "xxxxx", "attribute_model": "xxx", "attribute_modelYear": "2023", "whereapplied": "Eureka Benchmark Set" }, { "attribute_make": "xxxxx", "attribute_model": "xxx", "attribute_modelYear": "2021", "whereapplied": "Idea applies" } ], This reduced the number of documents significantly and indexing works fine. However, we now face a problem: cascading filters stop working. For example, when filtering on
    make: Aion
    , the
    model
    facet still shows unrelated models like
    Dolphin
    or
    Test_001
    . Even in the Typesense Dashboard, the
    facet_by
    results don’t reflect correct cascading behavior. ❓ Our core question: Does Typesense fully support filtering on array fields (
    []
    ) in a way that preserves correct interdependent facet values for cascading filters?
    Or is full flattening of data (with one combination per record) still the only way to get cascading filter behavior working properly? Given our scale, flattening leads to massive performance and UX problems. We’re looking for the best practice or architectural guidance for handling complex facet relationships in a scalable and performant way using Typesense + InstantSearch. Any recommendations or proven approaches would be really appreciated!
    p
    • 2
    • 2
  • a

    Ahamed Asif

    08/22/2025, 6:12 AM
    Hi Typesense team, I’m trying to implement a user-based personalized search, similar to Algolia’s personalization, but in Typesense. The personalization is primarily tag-based. For example: • If a user has a preference for the cuisine tag “Italian” and a dietary preference for “chicken”, • When the user searches for “pasta”, the results should prioritize dishes like chicken alfredo. This works reasonably well, but there are inconsistencies: • For instance, when searching for “cake”, the system sometimes surfaces unrelated items like pancakes with chicken. The issue seems related to query intent classification. To address this, I’m experimenting with: • Using Qdrant (vector DB) to classify the intent of the query. • Dynamically parsing a sorting string in Typesense that adjusts the weightage of certain tags. I know you recommend using the StarSpace model for personalization, but I’m not aiming for a heavy ML approach. Could you recommend a stable strategy for achieving consistent, tag-based personalization in Typesense without going full ML? Thanks,
  • v

    Victor

    08/22/2025, 9:04 AM
    Hi, I'm running typesense 29 on a 3-node cluster and I'm seeing thousands of log lines that look like this (always the same "sequence_id", different document IDs): `Error while getting related ids: Could not find
    auto_gallery_pk_sequence_id
    value for doc
    5318541
    .` The relevant parts of the schema are: schema "foo":
    {
    name: "auto_gallery_pk",
    type: "string",
    optional: true,
    reference: "gallery.id",
    async_reference: true
    }
    schema "gallery":
    {name: "pk", type: "int64"}
    Am I missing anything obvious? or any idea what to do about this? Unfortunately I couldn't find a way of replicating locally
    f
    p
    • 3
    • 14
  • l

    Li Yuxuan

    08/22/2025, 10:12 AM
    Hi folks, I want to explore a feasibility here with current TypeSense features, is it possible that: • I have a hypothetical scenario (see attached image), and this is the documents matching this example
    Copy code
    [
      {
        screenId: "screen_a",
        ui_elements: [
          {
            groupId: "group:button:1",
            class: "button",
          },
          {
            groupId: "group:button:1",
            class: "button",
          },
          {
            groupId: "group:icon:1",
            class: "icon",
          },
        ],
        embedding: [...]
      },
      {
        screenId: "screen_b",
        ui_elements: [
          {
            groupId: "group:button:1",
            class: "button",
          },
          {
            groupId: "group:icon:1",
            class: "icon",
          },
        ],
        embedding: [...]
      },
      {
        screenId: "screen_c",
        ui_elements: [
          {
            groupId: "group:button:1",
            class: "button",
          },
          {
            groupId: "group:button:2",
            class: "button",
          },
          {
            groupId: "group:icon:1",
            class: "icon",
          },
        ],
        embedding: [...]
      },
      {
        screenId: "screen_d",
        ui_elements: [
          {
            groupId: "group:icon:1",
            class: "icon",
          },
        ],
        embedding: [...]
      },
    ];
    Can I search for documents that: • contain both
    button
    &
    icon
    • and in my search results,
    screen_a
    and
    screen_b
    are de-duplicated to only show 1 (since they both contain the same type of elements) I'm thinking of using
    embedding
    field as you can see above, to be used to de-duplicate similar screens instead of based on the element groupings, is that possible with TypeSense APIs? 🙏
    p
    • 2
    • 4
  • n

    Nayan Chhabhaiya

    08/22/2025, 12:16 PM
    Hello @Kishore Nallan, @Jason Bosco, We do have a self-hosted Typesense server v0.25.2 which is installed as a linux service and we want to upgrade it to v29 to take advantage of new features. But we're afraid that we might face some issues in upgrade, so we want to know the more details on below points • Steps to to downgrade the typesense service. • How we can know the status of backup of on-disk database (using Snapshot API endpoint). Thanks in advanced 🙂
    p
    f
    j
    • 4
    • 12
  • o

    Ollie J

    08/22/2025, 5:06 PM
    This might be a silly question, but am looking to add in Vector Search (embedding) to a rather huge collection (200K+). Is there a way to update the schema and to trigger an embedding of every item, or would l need to create an empty schema and re-insert the data to trigger the embedding?
  • o

    Ollie J

    08/22/2025, 5:10 PM
    I understand i could create aliases on the collection and just keep moving to a new alias, if am correct simply creating an alias would trigger a full re-index of that alias?
  • s

    Shawn Tan

    08/22/2025, 5:13 PM
    Is there a way we can view docs for RC (release candidate) versions? I'm trying to figure out how to use faceting on joined fields with v30.0.0-rc8