Hibernate Search を使用しています。問題は、検索を実行すると、次の文字列になることです。
「私」
結果が出ない…これでやってみると…
"l*"
結果は次のとおりです。
「Lampada bla bla」「Lampione bla bla bla」「Lost」
これが私のポジョです
@Id @GeneratedValue
@DocumentId
private Long id;
@Field(index=Index.TOKENIZED, store=Store.YES )
private String nome;
@Field(index=Index.TOKENIZED,store=Store.YES, termVector=TermVector.YES)
private String descrizione;
@Column(length=30)
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(length=100)
public String getDescrizione() {
return descrizione;
}
public void setDescrizione(String descrizione) {
this.descrizione = descrizione;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public String toString() {
return String.format("(%s) %s: %s", id, nome, descrizione);
}
これは私のJavaクラスです:
Session session = super.session();
List result = new ArrayList();
luceneSession = Search.getFullTextSession(session);
String[] fields = (String[]) boostsNField.keySet().toArray(new String[boostsNField.keySet().size()]);
QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_30, fields, new StandardAnalyzer(Version.LUCENE_30), boostsNField);
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
try {
Query luceneQuery = parser.parse(queryString);
org.hibernate.Query fullTextQuery = luceneSession.createFullTextQuery( luceneQuery ); // E' possibile scegliere impostare il class da ricercare
result = fullTextQuery.list();
} catch (ParseException e) {
問題はどこだ??!?!?