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.

A well-formed element
{
  "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.

elements.json
[
  {
    "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" }
]
Importing adds the elements and leaves a single pending training — launch it once at the end.

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.