Java 休眠列表中的搜索范围<;整数>;
我从hibernate搜索开始,正在努力处理Java 休眠列表中的搜索范围<;整数>;,java,hibernate-search,Java,Hibernate Search,我从hibernate搜索开始,正在努力处理列表上的查询 我创建了一个桥来将列表转换为字符串。由此,我可以通过关键字搜索列表中任何项目的精确匹配,但我似乎无法使用范围查询它 我的实体A有一个定义为列表的属性“b” 我想知道是否有人可以帮助我查询所有A实体,其中有任何b元素在定义的范围内 例如: 具有以下集合{1,10,15}的A实例应在以下关于“b”属性的查询中出现: 低于(20), 上述(14), 以下(2) 但不是在像以下这样的搜索中: 高于(16),低于(0) 我希望我说清楚了。 提前谢谢
列表上的查询
我创建了一个桥来将列表转换为字符串。由此,我可以通过关键字搜索列表中任何项目的精确匹配,但我似乎无法使用范围查询它
我的实体A有一个定义为列表的属性“b”
我想知道是否有人可以帮助我查询所有A实体,其中有任何b元素在定义的范围内
例如:
具有以下集合{1,10,15}的A实例应在以下关于“b”属性的查询中出现:
低于(20),
上述(14),
以下(2)
但不是在像以下这样的搜索中:
高于(16),低于(0)
我希望我说清楚了。
提前谢谢 将网桥更改为多次存储同一字段,每次都使用整数列表的值。因此,假设您的字段名为myInt,您将存储myInt=1、myInt=10和myInt=15,示例代码:
public class MyBridge implements FieldBridge {
public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
if (value instanceof List){
for(Object myInt:(List)value){
Field myIntField = new Field(name, myInt.toString(), luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector());
myIntField.setBoost(luceneOptions.getBoost());
document.add(myIntField);
}
}
}
}
或者,您也可以插入一些自定义lucene来完成此操作,但过滤器有点复杂。感谢您的输入,您能否提供一些示例代码来创建独立存储值的桥接器?