Jak przeszukiwać pola z symbolem wieloznacznym i spacjami w wyszukiwaniu hibernacyjnym

Mam pole wyszukiwania, które wykonuje wyszukiwanie w polu tytułu w oparciu o dane wejściowe, więc użytkownik polecił wszystkie dostępne tytuły zaczynając od wstawionego tekstu. Opiera się na wyszukiwaniu Lucene i Hibernate. Działa dobrze, dopóki nie zostanie wprowadzona spacja. Wtedy wynik znika. Na przykład chcę, aby „Learning H” dał mi „Learning Hibernate”. Jednak tak się nie dzieje. czy mógłbyś mi doradzić, co powinienem tutaj użyć?

Kreator zapytań:

QueryBuilder qBuilder = fullTextSession.getSearchFactory()
        .buildQueryBuilder().forEntity(LearningGoal.class).get();
  Query query = qBuilder.keyword().wildcard().onField("title")
        .matching(searchString + "*").createQuery();

  BooleanQuery bQuery = new BooleanQuery();
  bQuery.add(query, BooleanClause.Occur.MUST);
  for (LearningGoal exGoal : existingGoals) {
     Term omittedTerm = new Term("id", String.valueOf(exGoal.getId()));
     bQuery.add(new TermQuery(omittedTerm), BooleanClause.Occur.MUST_NOT);
  }
  @SuppressWarnings("unused")
  org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(
        query, LearningGoal.class);

Klasa hibernacji:

@AnalyzerDef(name = "searchtokenanalyzer",tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
  @TokenFilterDef(factory = StandardFilterFactory.class),
  @TokenFilterDef(factory = LowerCaseFilterFactory.class),
  @TokenFilterDef(factory = StopFilterFactory.class,params = { 
      @Parameter(name = "ignoreCase", value = "true") }) })
      @Analyzer(definition = "searchtokenanalyzer")
public class LearningGoal extends Node {

questionAnswers(2)

yourAnswerToTheQuestion