Skip to content

Natural Language Search Service

PeopleSoft Search, behind Global Search and Keyword Search, runs on OpenSearch in current PeopleTools releases. It’s fast and powerful, but users have to know which search category to pick, which keywords to type, and which filters to set. The Natural Language (NL) Search Service lets them describe what they’re looking for:

  • “Vouchers over $10,000 from Acme entered last month”
  • “Employees in the Finance department hired this year”
  • “Open requisitions for laptops”
  • “Assets in Building 3 purchased before 2020”

The service works out what the user means, and turns it into a query plan: which search to run, and with which filters. PeopleSoft then runs the search as the user, with its normal search security.

  1. The user searches in plain language on the NL search page, or through the PeopleSoft Assistant or another application that calls the NL search API.

  2. PeopleSoft sends the question to the NL Search Service, with today’s date and the user’s language, and nothing else.

  3. The service identifies the intent. It matches the question against the Intent Store, and uses a versioned prompt from the Prompt Store to have the LLM write the plan, with details such as the supplier, amount, date range, or status.

  4. The service validates the plan against the intent, and returns it with a plain-language summary of how the question was understood.

  5. PeopleSoft runs the search with the Search Framework, as the user, applying the search definition’s security, and shows the results with the summary, so users can see what was searched and refine it.

Intent Store

The catalog of searches the service understands, such as find vouchers or find employees. Each intent maps to a search category, the fields users can filter on, and the operators allowed.

Prompt Store

Versioned prompts that teach the LLM to turn language into a query plan. Tune a prompt, or roll back to the previous version, without a code change.

Because intents and prompts are stored as data, adding a new kind of search is a configuration change rather than a development project, and every change is versioned and testable.

Keyword search finds the words users type. Semantic search finds what they mean, so a search for “laptop replacement” can match “notebook computer refresh.”

PeopleTools 8.63 adds semantic search to PeopleSoft Search, on OpenSearch 3.2, scoring vector embeddings alongside traditional keyword matching. NL Search uses the words in each plan as the query text, so search definitions set up for semantic search match them by meaning, while the plan’s filters still compare values, not meaning. On earlier releases, the words are matched by keyword, and the Intent Store’s synonyms help bridge the gap.

  • The LLM never runs a search. It writes a query plan, which the service validates against the Intent Store, meaning the allowed categories, fields, and operators, before PeopleSoft runs anything.
  • PeopleSoft applies security, not the LLM or the service, so no phrasing of a question can widen access.
  • The LLM never sees results. It sees the question and the intents, and the search runs only after its work is done.
  • Transparent results. Users see how their question was understood, and can adjust it.
  • PeopleSoft Search on OpenSearch, available from PeopleTools 8.59.21 and 8.60.07, and the only search engine from PeopleTools 8.61.
  • PeopleTools 8.63 or later for semantic search.
  • Search definitions, deployed and indexed, for the data users will search, with the fields they’ll filter on as attributes. Keep their indexes current with incremental builds, or with real-time indexing.
  • An LLM API, preferably with structured output, and an embedding model for matching intents.
  • A place to run the NL Search Service, close to PeopleSoft.

Set up NL Search takes you through each step.