我正在使用 Hibernate Search / Lucene 来维护一个非常简单的索引来按名称查找对象 - 没有花哨的东西。
我的模型类都扩展了一个NamedModel
基本上如下所示的类:
@MappedSuperclass
public abstract class NamedModel {
@Column(unique = true)
@Field(store = Store.YES, index = Index.UN_TOKENIZED)
protected String name;
}
我的问题是,BooleanQuery$TooManyClauses
在查询名称以特定字母开头的对象的索引时出现异常,例如"name:l*"
. 类似的查询"name:lin*"
将毫无问题地工作,实际上任何在通配符之前使用多个字母的查询都可以工作。
在网上搜索类似问题时,我只发现人们使用非常复杂的查询,而且这似乎总是导致异常。我不想增加maxClauseCount
,因为我认为仅仅因为达到限制就改变限制不是一个好习惯。
这里有什么问题?