Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠列表中的搜索范围<;整数>;_Java_Hibernate Search - Fatal编程技术网

Java 休眠列表中的搜索范围<;整数>;

Java 休眠列表中的搜索范围<;整数>;,java,hibernate-search,Java,Hibernate Search,我从hibernate搜索开始,正在努力处理列表上的查询 我创建了一个桥来将列表转换为字符串。由此,我可以通过关键字搜索列表中任何项目的精确匹配,但我似乎无法使用范围查询它 我的实体A有一个定义为列表的属性“b” 我想知道是否有人可以帮助我查询所有A实体,其中有任何b元素在定义的范围内 例如: 具有以下集合{1,10,15}的A实例应在以下关于“b”属性的查询中出现: 低于(20), 上述(14), 以下(2) 但不是在像以下这样的搜索中: 高于(16),低于(0) 我希望我说清楚了。 提前谢谢

我从hibernate搜索开始,正在努力处理
列表上的查询

我创建了一个桥来将列表转换为字符串。由此,我可以通过关键字搜索列表中任何项目的精确匹配,但我似乎无法使用范围查询它

我的实体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来完成此操作,但过滤器有点复杂。

感谢您的输入,您能否提供一些示例代码来创建独立存储值的桥接器?