Spring Boot Hibernate Search 6 Rückgabe nicht Ergebnisse für teilweise Übereinstimmungen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Spring Boot Hibernate Search 6 Rückgabe nicht Ergebnisse für teilweise Übereinstimmungen

by Anonymous » 27 Feb 2025, 08:00

Ich implementiere Hibernate -Suche 6 in meiner Spring -Boot -Anwendung. Ich brauche die Fähigkeit, nach teilweisen Übereinstimmungen zu suchen, ähnlich wie % wie % in SQL. Aus der Dokumentation und anderen Foren scheint es, dass die Hibernate -Suche 6 die explizite Unterstützung der Übereinstimmung beseitigt und durch die Wild Card -Abfragen ersetzt hat. Hier ist mein relevanter Testbettcode, um das Szenario zu reproduzieren: < /p>
Testdaten: < /p>
phonenumber,area_zone,state
9871234567,DL,Delhi
9871234568,HR,Haryana
9871234569,PB,Punjab
9871234578,UP,Uttar Pradesh
9871234579,TS,Telangana
9871234479,AP,Andhra Pradesh
< /code>
mein dto: < /p>
@Entity
@Table(name="PHONENUMBER", uniqueConstraints = {@UniqueConstraint(columnNames = "phonenumber")})
@Indexed
public class PhoneNumber {
@Id
@GeneratedValue
private int id;

//@FullTextField(searchAnalyzer = "custom_analyzer")
@GenericField(sortable= Sortable.YES)
private String phonenumber;

@GenericField(sortable=Sortable.YES)
private String area_zone;

@GenericField(sortable= Sortable.YES)
private String state;
}
< /code>
Hier ist die Implementierung meines Custome JPA -Repo für die Durchsuchung von Hibernate: < /p>
public class CustomSearchRepositoryImpl implements CustomSearchRepository {

@PersistenceContext
private EntityManager em;

//Hibernate Search 6
@Override
public List
search(String terms, int limit, int offset) {
System.out.println(">>>>>searching for " + terms);

return Search.session(em).search(PhoneNumber.class)
.where(f -> f.match()
.fields("phonenumber", "area_zone", "state")
.matching(terms))
.fetchHits(offset, limit);
}
}
< /code>
Die Suche wird durch die API: /Search ausgelöst. The results are:
  • /api/search/AP : 9871234479 AP Andhra Pradesh
  • /api/search/Punjab : 9871234569 PB Punjab
  • /api/search/Pun : NO RESULTS
  • /api/search/pb: 9871234569 pb punjab
  • /api/such/uttar: Keine Ergebnisse
  • /api/such/987: Keine Ergebnisse
Die FULL -Übereinstimmung. Würde Empfehlungen benötigen, um die teilweise Suchfunktion zu erstellen.>

Top