Skip to content

Document full project routing support for cross-project search (CPS)#7168

Open
charlotte-hoblik wants to merge 7 commits into
mainfrom
charlotte-CPS-1279
Open

Document full project routing support for cross-project search (CPS)#7168
charlotte-hoblik wants to merge 7 commits into
mainfrom
charlotte-CPS-1279

Conversation

@charlotte-hoblik

@charlotte-hoblik charlotte-hoblik commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Part of elastic/docs-content-internal#1279.
Cross-project search now supports full project routing. The project_routing parameter accepts any predefined tag (_alias, _csp, _region, and others) or custom Cloud tag, with boolean logic, groupings, and wildcards, using Lucene query syntax.
Changes:

  • Remove the "project routing only supports the _alias tag" note on the project routing page.
  • Expand the project routing examples on the routing page and the CPS overview page to cover multiple tags, boolean logic, groupings, and wildcards.
  • Add named project routing expression examples (create with the _project_routing API, reference with @).
  • Add "what fails" examples for the known error cases.
  • Fix the origin-only example to use the reserved _alias:_origin value.

Behind a serverless feature flag, so kept as draft until the flag is confirmed enabled.
Kibana docs follow in July/August.
Companion ES|QL change: elastic/elasticsearch#152673

@charlotte-hoblik charlotte-hoblik self-assigned this Jul 1, 2026
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Elastic Docs AI PR menu

Check the box to run an AI review for this pull request.

Powered by GitHub Agentic Workflows and docs-actions. For more information, reach out to the docs team.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

✅ Elastic Docs Style Checker (Vale)

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs review summary

Focus areas

  • Style and clarity: One voice inconsistency in the new intro paragraph (inline comment). Pre-existing Vale findings (execute, all of, my) all fall in untouched sections and were skipped.
  • Jargon: No unexplained jargon introduced. CPS is established in context; ES|QL, _search, and tag names are code/API terms used correctly.
  • Frontmatter and applies_to: No issues. Frontmatter is unchanged in both files and looks correct for a serverless-preview feature.
  • Content type fit: Both files are how-to/reference pages; the new sections fit the established structure.
  • Parent issue satisfaction: Satisfied. All five stated goals are implemented: the _alias-only restriction note is removed, examples for multiple tags/boolean logic/groupings/wildcards are added to both pages, named expression examples are expanded with aws-us-only, "what fails" notes are added for both error cases, and the _alias:_origin fix is applied in both files.

Nits

  • cross-project-search-project-routing.md uses API request as the tab label for the new example tab-set (line 39), while cross-project-search.md uses _search for equivalent tabs. Both are consistent within each file, but aligning the label across both pages would reduce friction for readers navigating between them.

Notes

  • Vale findings were skipped because all five fall in pre-existing, untouched sections.

Generated by Docs review agent for issue #7168 · 55.1 AIC · ⌖ 6.69 AIC · ⊞ 10.7K

Comment thread explore-analyze/cross-project-search.md Outdated
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

@quux00 quux00 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. A few suggestions provided.

Comment thread explore-analyze/cross-project-search/cross-project-search-project-routing.md Outdated
Comment thread explore-analyze/cross-project-search/cross-project-search-project-routing.md Outdated
}
```
:::

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be a good spot to add in the example:

project_routing:"_csp:* AND NOT _csp:azure"

rather than

project_routing:"NOT _csp:azure"

(as I mentioned on the other PR)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added this with the other "what fails" cases in the note just below, so the gotchas stay together. Shout if you'd rather it be its own example! 🙏

}
```

Combine tags with `AND` and `OR`. The following request routes to projects on Amazon Web Services (AWS) in a US region:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Think about adding "you" to follow our guidance on active voice. See also line 623 "Group terms..."

### Project routing examples

In the following example, there is an origin project and a linked project. The origin project contains one index, `my-index`. The linked project contains two indices: `my-index` and `logs`.
Project routing limits a search to a subset of projects based on their tags, before the search runs. You can route on any predefined tag, such as `_alias`, `_csp`, or `_region`, or on any custom tag you define in the {{ecloud}} UI. Combine tags with the `AND`, `OR`, and `NOT` operators, group terms with parentheses, and match part of a value with a prefix or suffix wildcard. Tag value matching is case-insensitive, so `_csp:AWS` matches the value `aws`. Tag names are case-sensitive, so use `_csp`, not `_CSP`. In an expression, a colon (`:`) separates a tag from its value. The syntax is the same for the `_search` API and {{esql}}.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a minor nit. The nested or's are hard to read. Potentially break it up or reword it to bring more clarity. Fine as is. Not blocked just a suggestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants