Skip to content

Conversation

@germanosin
Copy link
Member

@germanosin germanosin commented Aug 14, 2025

  • Breaking change? (if so, please describe the impact and migration path for existing application instances)

What changes did you make? (Give an overview)

Is there anything you'd like reviewers to focus on?

How Has This Been Tested? (put an "x" (case-sensitive!) next to an item)

  • No need to
  • Manually (please, describe, if necessary)
  • Unit checks
  • Integration checks
  • Covered by existing automation

Checklist (put an "x" (case-sensitive!) next to all the items, otherwise the build will fail)

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (e.g. ENVIRONMENT VARIABLES)
  • My changes generate no new warnings (e.g. Sonar is happy)
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged

Check out Contributing and Code of Conduct

A picture of a cute animal (not mandatory but encouraged)

@germanosin germanosin requested a review from a team as a code owner August 14, 2025 08:16
@github-project-automation github-project-automation bot moved this from Todo to PR Approved in Release 1.4 Sep 4, 2025
@germanosin germanosin requested a review from a team as a code owner September 6, 2025 11:59
@germanosin germanosin merged commit f2fabd3 into main Sep 11, 2025
17 of 18 checks passed
@github-project-automation github-project-automation bot moved this from PR Approved to Done in Release 1.4 Sep 11, 2025
@germanosin germanosin deleted the issues/1087-fts branch September 11, 2025 16:36
@yeikel
Copy link
Collaborator

yeikel commented Sep 15, 2025

@germanosin It seems that this change introduced #1344

@th0ger
Copy link

th0ger commented Nov 26, 2025

What is actually the functionality implemented here? (No linked issue, no docs added.)

We upgraded to 1.4.2 and set

  fts:
    enabled: true

and I've tried to use wildcard * in topic search, but no results are returned.

@th0ger
Copy link

th0ger commented Nov 27, 2025

@germanosin Here is my test:
"Apply full text search" button enabled.
Creating topic foo-bar and consumer foo-bar.

Topic search:

  1. bar foo => Found (Ok)
  2. bar-foo => Found (not anticipated)
  3. bar*foo=> Not found (Ok)
  4. foo*bar => Not found (not anticipated)

Consumer search:

  1. bar foo => Found (Ok)
  2. bar-foo => Found (not anticipated)
  3. bar*foo=> Found (not anticipated)
  4. foo*bar => Found (Ok)

So, multi word search works.
Hyphen -is treated as whitespace in query, how to avoid?
Wildcard * seems to be treated a literal character in Topic search - expected wildcard behavior.
Wildcard * seems to be ignored in Consumer search - expected wildcard behavior.

I have not created a bug, because there is no "by design" documentation to lean on.

@germanosin
Copy link
Member Author

@germanosin Here is my test: "Apply full text search" button enabled. Creating topic foo-bar and consumer foo-bar.

Topic search:

  1. bar foo => Found (Ok)
  2. bar-foo => Found (not anticipated)
  3. bar*foo=> Not found (Ok)
  4. foo*bar => Not found (not anticipated)

Consumer search:

  1. bar foo => Found (Ok)
  2. bar-foo => Found (not anticipated)
  3. bar*foo=> Found (not anticipated)
  4. foo*bar => Found (Ok)

So, multi word search works. Hyphen -is treated as whitespace in query, how to avoid? Wildcard * seems to be treated a literal character in Topic search - expected wildcard behavior. Wildcard * seems to be ignored in Consumer search - expected wildcard behavior.

I have not created a bug, because there is no "by design" documentation to lean on.

The full-text search algorithm is fairly straightforward. It splits names into parts based on spaces, special characters (such as dashes or underscores), and case changes. When you perform a search, your query is split the same way, and the system looks for name segments that begin with those query fragments.

@th0ger
Copy link

th0ger commented Nov 27, 2025

@germanosin thanks for explaining. Why does is * treated as whitespace/tokensplitter in topic search but literal character in Consumer search?

@germanosin
Copy link
Member Author

@germanosin thanks for explaining. Why does is * treated as whitespace/tokensplitter in topic search but literal character in Consumer search?

topics use lucene based indexing
consumer groups / acls / ... use ngram filters

@th0ger
Copy link

th0ger commented Nov 28, 2025

Thanks @germanosin.
Why this difference? This is mildly confusing :-)
Docs should mention how the two search methods work.

Thanks for putting effort into this great product!

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

Labels

area/ux User experiense issues scope/backend Related to backend changes status/triage/completed Automatic triage completed type/feature A brand new feature

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

BE: Add a full text search

8 participants