ich Lucene konfiguriert mein Hibernate Modell von Wert in der Spalte suchen test
:Hibernate Search (Lucene) zurückkehren leeres Ergebnis bei '=' in String
@Entity
@Table(name = "TEST")
@Audited
@Indexed
public class Test {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@Column(name = "TEST")
@Field(index = Index.YES,analyze = Analyze.YES,store = Store.NO)
private String test;
...
}
In Datenbank Testmodell enthält Werte Spalte folgenden Test:
- AB = ABC
- AB = BCD
ich habe fo llowing Code für durch Spaltenwert suchen:
String queryValue = "AB";
QueryBuilder qb = org.hibernate.search.jpa.Search.getFullTextEntityManager(em).getSearchFactory().buildQueryBuilder().forEntity(Test.class).get();
Query query = qb.all().createQuery();
BooleanJunction<BooleanJunction> conjuction = qb.bool();
String searchValue = new StringBuilder().append("*").append(queryValue .toLowerCase()).append("*").toString();
conjuction.should(qb.keyword().wildcard().onFields(new String[] { "test"}).matching(searchValue).createQuery());
query = conjuction.createQuery();
FullTextQuery textQuery = org.hibernate.search.jpa.Search.getFullTextEntityManager(em).createFullTextQuery(query, Test.class);
return textQuery.getResultList();
obigen Code funktioniert findet Wert AB
und Lucene Rückkehr mir 2 Aufzeichnungen, aber wenn ich für AB=
Suche kehrt mir leer Ergebnis.
UPDATE
Hier ist der Code für die Indizierung:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em);
fullTextEntityManager.createIndexer().startAndWait();
Sie wissen Sie, warum ich leer Ergebnis bin immer, da Lucen sollte mich 2 Datensätze zurückgeben? Wie kann ich es reparieren?
Wie indexieren Sie es? – root545
Ich meine Indexierung von ID – bontade
Was ist der Analysator Sie Indexierung verwenden? – root545