Lists & elements
How to organise lists and elements in XEYE: fields, visibility, JSON parameters and file import.
Lists
A list groups the elements that are searched together. Keep one list per use case — one for products, one for help articles, one for FAQs — because searches never mix lists.
Name. How you and the API identify the list. The API searches by list name, so pick a stable, unique one.
Description. What the list is about. It is passed to training as context, so an accurate description improves semantic results.
Visibility. Public lists can be queried with an API key. Private lists are only searchable from this console.
Elements
An element is one searchable entry. It has three fields, each with a distinct job:
Text. The main content queries are matched against. Make it the phrase your users would actually search for.
Description (optional). Extra context: synonyms, features, alternative wording. It feeds semantic matching, not the visible result.
Params (optional). JSON or plain text returned untouched with every match — ids, URLs, prices… whatever your app needs to render the result.
{
"text": "Sony WH-1000XM5 wireless headphones",
"description": "Noise-cancelling over-ear headphones, 30h battery, Bluetooth 5.2",
"params": {
"sku": "SONY-XM5",
"url": "/products/sony-wh-1000xm5",
"price": 348
}
}The text is what users search for; the description adds meaning; the params let your app link straight to the product.
Bulk import
From the list, "Import from file" accepts a JSON file containing an array of objects. Only "text" is required; "description" and "params" are optional.
[
{
"text": "Sony WH-1000XM5 wireless headphones",
"description": "Noise-cancelling over-ear headphones",
"params": { "sku": "SONY-XM5" }
},
{
"text": "Logitech MX Master 3S mouse",
"params": { "sku": "LOGI-MX3S" }
},
{ "text": "USB-C 100W charging cable" }
]Recommendations
Keep texts short and specific: one concept per element beats one giant element with everything.
Use the description for synonyms and context your users might search with, not for repeating the text.
Put everything your app needs to render a result in params — the API returns them as-is with each match.
Avoid near-duplicate elements: they compete against each other and clutter results.