Is your Liferay search any good? Without a search log, nobody can tell.

A free open-source plugin records user searches and the results shown, which base Liferay DXP does not keep. When you have data, TensorOpt measures it independently.

What Liferay records about search, and what it doesn't

Base Liferay DXP keeps no stored record of each query together with the results it returned.

The plugin: search log, rung 2

Search Eval Logger is free and open source (Apache 2.0). It records user searches together with the results shown, and never changes a search.

What it records

  • The query text, locale, site scope and requested asset types
  • Applied facet selections, where the search exposes them
  • Each result shown: rank, score, document ID and asset type, and the title and snippet when the response already has them
  • Page size, offset and total hit count
  • Whether the user was a guest or signed in, and a salted hash of the user ID

What it does not record

  • User IDs, names, email addresses or IP addresses
  • Document bodies, by default

Supported versions: DXP 2025.Q1 LTS to 2026.Q2 (two builds); 2026.Q3 and later not yet supported. The README's requirements table says which build fits which release.

Restart the portal after you install it. Without the restart the plugin records nothing and logs no error. Collection is off until you switch it on.

Get it from the releases on GitHub.

When you have data

Start with the search log guide: a first look at an export, with no labels needed. Then, if you want an independent reading:

  • Readout. From the export: what it means for your decision, what to measure first, and a fixed quote for the Evaluation.
  • Evaluation. One decision measured, for example keyword versus semantic versus hybrid search on your own queries.
  • Retainer. Up to two changes a month, measured against the same judgment set.

Packages and prices

For your security reviewer

  • No outbound request to TensorOpt, from the server or the browser. The only network call is the notification email your portal sends through its own mail server.
  • Records stay in your portal database. Export is manual and needs a dedicated permission. The export is vendor-neutral.
  • Apache 2.0, with the source on GitHub. The two links to TensorOpt are ordinary links that can be switched off; a click tells TensorOpt only that someone clicked, the UTM tags and, for one link, the date collection started.

SECURITY-REVIEW.md names the source for each claim and is written to be forwarded unedited.

Measure the search you can't see

Learn how to tell whether your search works, and how to measure a change before you make it. Five short emails over two weeks:

  1. Why misses stay invisible: users judge what is on the screen, never what is missing.
  2. The measurement ladder: nine rungs, and where your system sits.
  3. The first rung to climb: a log of each query and the results it returned.
  4. Getting started safely: the free plugin through security review on Liferay DXP, or, on other stacks, where accuracy is lost first.
  5. Two averages are not a decision: what to measure before you switch on semantic search or change a parser, embedding or model.

Then at most two short follow-ups. You also get practical files that are not on the site: a plugin rollout checklist (Liferay DXP) or a logging schema (other stacks), and a labelling kit.

What does your search run on?

Independence and trademark

Liferay is a trademark of Liferay, Inc. TensorOpt is independent and not affiliated with Liferay. Your team or your Liferay partner makes any changes.

Who maintains this. Laszlo Csontos, author of the open-source Search Eval Logger for Liferay DXP, runs TensorOpt.