Skip to main content
Search lets your application send a free-text query and receive ranked catalogue items through the same pipeline used for recommendations, at POST https://api.neuronsearchlab.com/v1/search. Results use the same item shape as recommendations, so the same rendering code works for both.
Call search from your backend with an access token that has the neuronsearchlab-api/read scope. The console’s own search box uses a different, internal endpoint that is not meant for your product.
Use search when the user types what they want: a product search box, a content discovery query, a help-article lookup. NSL matches the query by meaning and, if enabled, by keywords, then applies the context’s filters, ranking and rules. Recommendations start from a user or item embedding. Search starts from the query text.

Call the REST API

Hybrid retrieval options are also accepted per request: query_retrieval_enabled, fusion_method (rrf or weighted), semantic_weight, keyword_weight and keyword_fields. Set these on the context’s pipeline instead where you can, so every caller gets the same behaviour. See Pipeline.

Use the JavaScript SDK

The JavaScript SDK posts to /v1/search and captures the returned request_id for subsequent trackEvent() calls. Pass resultItemIds to send your own engine’s results.

Use the PHP SDK

The PHP SDK uses the same Core API endpoint and mirrors the request ID propagation behavior.

Bring your own search engine

If your product already has search (Algolia, Elasticsearch, Typesense or your own database), keep it. Send NSL the query and the item IDs your engine showed, and NSL records the search and returns recommendations that complement those results:
The IDs you send are excluded from the response, so what comes back can sit beside your results. If you only want to record the search, send it to /v1/events with query and no item_id, or call trackSearch() in the SDKs. Either way, the search becomes an event that steers the user’s later recommendations by the weight of your Search event. See Searches are events.

Response shape

Search responses use the standard list envelope:
Each item includes explanation metadata when available. The request-level explanation shows whether semantic, keyword, or hybrid search candidates were used.

Measure search engagement

Every search with a user is also recorded as a search event that steers that user’s later recommendations. Use the returned request_id when sending click, view, add-to-cart, or conversion events. The official SDKs handle this automatically after search(). If you call REST directly, include request_id in your event payload so analytics can attribute engagement to the search result set. See the search endpoint reference for the full contract.