【发布时间】:2017-05-17 14:44:47
【问题描述】:
在我的项目中,我们使用带有 lucene 分析器和太阳能的 hibernate search 4.5。
我为我的客户提供一个文本字段。当他们输入短语时,我想查找名称中包含给定短语的所有 User 实体。
例如,考虑在数据库中有以下标题的条目列表:
[ Alan Smith, John Cane, Juno Taylor, Tom Caner Junior ]
jun 应该返回 Juno Taylor 和 Tom Caner Junior
an 应该返回 Alan Smith、John Cane 和 Tom Caner Junior
@AnalyzerDef(name = "customanalyzer", tokenizer = @TokenizerDef(factory = WhitespaceTokenizerFactory.class), filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") })
})
@Analyzer(definition = "customanalyzer")
public class Student implements Serializable {
@Column(name = "Fname")
@Field(index = Index.YES, store = Store.YES, analyze = Analyze.YES)
private String fname;
@Column(name = "Lname")
@Field(index = Index.YES, store = Store.YES, analyze = Analyze.YES)
private String lname;
}
我尝试过通配符搜索,但是
Query luceneQuery = mythQB
.keyword()
.wildcard()
.onFields("fname")
.matching("ju*")
.createQuery();
我怎样才能做到这一点?
【问题讨论】:
标签: java hibernate lucene hibernate-search solar