我是新的,這裏是我的執行: 我開始與實體及其外地Hibernate Search的:取索引字段包含在使用Hibernate Search的給定的關鍵字
@AnalyzerDef(name = "ngram",
tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = StandardFilterFactory.class),
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = StopFilterFactory.class),
@TokenFilterDef(factory = NGramFilterFactory.class,
params = {
@Parameter(name = "minGramSize", value = "3"),
@Parameter(name = "maxGramSize", value = "3") })
}
)
@Indexed
@Entity
@Table(name="USERS")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Field
@Column(nullable=false,length=30,name="first_name")
private String firstName;
@Column(nullable=false,length=30,name="last_name")
private String lastName;
@Column(length=128)
@Field([email protected](definition="ngram"))
private String login;
@Column(length=255)
private String password;
在我的數據庫,我有2條記錄以下數據:
| id | first_name | last_name |登錄|密碼|
| 1 | NULL | NULL | mednabli | * | | 2 | NULL | NULL | med-nabli | * |
,當我在球場上的登錄應用研究,我展示成果的登錄我得到:
鍵入關鍵字:醫學版
結果:mednabli mednabli
鍵入關鍵字:med-
結果:(沒有),而我需要MED-nabli
鍵入關鍵字:nabli
結果:mednabli而我需要得到mednabli mednabli
鍵入關鍵字:kamed
結果:(沒有),而我需要mednabli mednabli
所以請爲有一種方法可以讓搜索達到預期的結果,是否有一個分析器我應該依靠它來使我的應用程序工作正如我想要的?
對於關鍵詞kamed,這最後將被分成3克:kam,ame,med,所以我將不得不獲得所有包含「med」的登錄。我會嘗試你的解決方案Ty的回覆:) –