Make the pages searchable
The feed produced a file of your pages. A feed only ever owns its file — making it searchable is your call: you point a list at that file and keep the two in sync.
Why a separate step
Keeping the file and the list separate is deliberate. The feed's job is to mirror your site into a file; the list's job is to be searchable. You decide which file becomes which list, and deleting the feed later leaves the list's records untouched — they just stop refreshing. It's the same import from a file you'd use for a spreadsheet you uploaded yourself; the feed simply keeps that file current for you.
Create the list, with an embedding model
Create a list — call it reference — and attach an embedding model. The model is what lets search rank by meaning: it reads the page text and a visitor's question into the same "space", so a question finds the right page even when it shares no words with it. Without a model you'd get keyword search only, which is the difference the finished example puts side by side.
Bind it to the feed's file
Open the reference list, choose Import, and pick from a media store. Choose your media store and the feed's file, feeds/reference-site.ndjson. Turn on two things:
- Keep in sync — re-import automatically whenever the feed refreshes the file. This is what makes the list track your site: publish a page, it appears; edit one, it updates; remove one, it drops out.
- Create fields — the feed's file describes its own fields, so they're set up for you:
content(the section text, searchable),url(a deep link to that section), andpage(a filter to group a page's sections).
Each section of a page is its own record, split on the page's headings — so a search lands the reader on the part of the page that answers them, not just the page.
Or from code
Create the list with a model attached:
POST https://api.searchstack.dev/list
X-API-Key: {your key}
Content-Type: application/json
{ "account_name": "Demo", "list_name": "reference", "subscription_name": "Basic", "model_name": "google-gemini-embedding-2" }
Then bind it to the feed's file, keeping the two in sync:
POST https://api.searchstack.dev/search-result/Demo/reference/import-from-media
X-API-Key: {your key}
Content-Type: application/json
{ "store_name": "default", "file_path": "feeds/reference-site.ndjson", "keep_in_sync": true, "create_fields": true }
Import runs in the background — each section is embedded by the model, which takes a moment. When it settles, the list carries every section of every page, ready to search. Need it fresh right now rather than on the schedule? Ask the feed to sync:
POST https://api.searchstack.dev/feed/Demo/reference-site/sync
X-API-Key: {your key}
reference list now holds every section of every crawled
page, embedded for meaning-based search — and it keeps itself in step with your site. From here
it's a normal searchable list. Next: put it in front of a visitor.
Go deeper: Binding a list to a feed, keep-in-sync, and the sync schedule in the reference.