如何注释以允许使用 Hibernate Search 搜索 List 字段

2023-12-28

假设我有一个如下所示的域对象:

@Entity
@Indexed
public class Thingie implements DomainObject {  

private Long id;        
private Integer version;

private String title;    
private List<String> keywords = new Vector<String>();    

@Id
@GeneratedValue
public Long getId() {
    return id;
}
public void setId(Long id) {
    this.id = id;
}

@Version
public Integer getVersion() {
    return version;
}
public void setVersion(Integer version) {
    this.version = version;
}

@Column(length=64, nullable=false)
@Field(index=Index.TOKENIZED,store=Store.NO)
public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}


@ElementCollection
    // what do I put here??
public List<String> getKeywords() {
    return keywords;
}
public void setKeywords(List<String> keywords) {
    this.keywords = keywords;
}       
 }

如何注释关键字字段,以便我可以进行这样的搜索,对标题和关键字进行全文搜索:

 org.apache.lucene.search.Query query = qb.keyword().onFields("title","keywords")
 .matching("search").createQuery();

您可以使用 StringBridge。检查 4.2.2.1。弦桥在

http://docs.jboss.org/hibernate/search/3.1/reference/en/html/search-mapping-bridge.html http://docs.jboss.org/hibernate/search/3.1/reference/en/html/search-mapping-bridge.html

例如,如果您将关键字以以下格式存储在数据库中:aa,bb,cc

@FieldBridge(impl=CollectionToCSVBridge.class) //your bridge implementation
private List<String> keywords;

一种实现可以是:

 public class CollectionToCSVBridge implements StringBridge
 {
     public String objectToString(Object value)
     {
        if(value != null)
        {
            StringBuffer buf = new StringBuffer();

            Collection<?> col = (Collection<?>)value;
            Iterator<?> it = col.iterator();
            while(it.hasNext())
            {
                String next = it.next().toString();
                buf.append(next);
                if(it.hasNext())
                    buf.append(", ");
            }
            return buf.toString();
        }
        return null;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何注释以允许使用 Hibernate Search 搜索 List 字段 的相关文章

  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • Clip 在 Java 中播放 WAV 文件时出现严重延迟

    我编写了一段代码来读取 WAV 文件 大小约为 80 mb 并播放该文件 问题是声音播放效果很差 极度滞后 你能告诉我有什么问题吗 这是我的代码 我称之为doPlayJframe 构造函数内的函数 private void doPlay f
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List
  • javax.persistence.Table.indexes()[Ljavax/persistence/Index 中的 NoSuchMethodError

    我有一个 Play Framework 应用程序 并且我was使用 Hibernate 4 2 5 Final 通过 Maven 依赖项管理器检索 我决定升级到 Hibernate 4 3 0 Final 成功重新编译我的应用程序并运行它
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • PHP:涉及爆炸键的映射数组[重复]

    这个问题在这里已经有答案了 在尝试使用多个 foreach 循环解决此问题后 我仍然不知道如何映射 arr to arr mapped 我需要爆炸钥匙 arr获取最多具有三个要创建的新键的元素 arr mapped
  • 通过两个模型来查看[重复]

    这个问题在这里已经有答案了 我是 mvc 新手 并尝试通过用它做一个小项目来学习它 我有一个页面应该显示特定日期的货币和天气 所以我应该通过货币模型和天气模型 我已经完成了通过货币模型并且工作正常 但我不知道如何通过第二个模型 大多数教程都
  • 为什么 python MSAL 身份验证卡在 ConfidentialClientApplication 处?

    我有这段 python 代码 它在我的计算机上完美运行 但当我在带有 Amazon Linux 的 EC2 上运行它时 它会卡在这个函数中 检查了所有网络和防火墙规则 一切正常 事实上 如果我从我的 PC 获取令牌并尝试通过 cURL 直接
  • 如何使用 prometheus Alertmanager 在工作时间之外抑制警报?

    我们的应用程序依赖于仅在工作时间内活跃的数据源 我们在普罗米修斯中设置了警报 以便在溪流干涸时通知我们 但是 我们不希望在工作时间之外收到 错误 警报 我跟着这个帖子 https medium com tom fawcett time of
  • 如何限制日志记录频率?

    任何日志库是否包含限制日志消息频率的方法 我的意思是假设我有一个等待循环并且它记录 没有完成 如何使下一条 未完成 消息仅在 1 秒后记录 我知道我可以自己编程 大多数日志记录库都支持过滤器来限制日志记录频率 请参阅此答案SLF4J 或 L
  • 如何使用 highcharts 将图表图像保存到服务器上?

    With highcharts you have a built in button to download the current chart example http www highcharts com demo http www h
  • 我可以更新 ProgressDialog 的字符串消息吗?

    我在 Android AsyncTak 中设置了一个进度对话框并且它可以工作 我的问题是可以在 AsyncTask 的 onProgressUpdate 方法中更新 ProgressDialog 显示的字符串 我想使用publishProg
  • wkhtmltopdf 自定义字体字母间距

    I m running wkhtmltopdf on linux server centos 10 x86 64 I m trying to add Times New Roman font to the page I see the fo
  • Vim 颜色太亮(终端)

    我的 Vim 和 iTerm2 有问题 颜色太亮 对于所有主题 它适用于 Terminal app 和 MacVim 所以我想这一定是我完全错过了 iTerm2 中的某些设置 The picture below shows you the
  • Dropzone 无法以编程方式在 div 内工作

    我遇到了 dropzone 问题 我试图将其包含在 div 中 但不起作用 起初我的js上没有 div dropzone 东西 并且没有出现错误 但是上传部分无法正常工作 这是因为我从未表明 dropzone 类位于 div 内 当我添加时
  • Elastic Search 地理空间搜索实现

    我试图了解 elasticsearch 如何在内部支持地理空间搜索 对于基本搜索 它使用倒排索引 但它如何与附加搜索条件 例如搜索特定半径内的特定文本 结合起来 我想了解如何存储和查询索引以支持这些查询的内部结构 文本查询和地理查询是分开执
  • gradle构建过程中的CSS Sprite生成?

    我最近读了一篇关于 Javascript 的文章 其中提到了像 Grunt 和 Ender 这样的构建工具 简要指出 此类工具能够从单独提供的文件生成精灵图像 并且这些构建工具可以集成到构建过程中 不幸的是我的谷歌搜索没有透露更多这方面的信
  • 无法在控制台应用程序 .NET Core 中使用 IOptions

    我有一个控制台应用程序 我正在其中构建配置 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build var se
  • 找不到socket.io.js [重复]

    这个问题在这里已经有答案了 可能的重复 找不到socket io js https stackoverflow com questions 10191048 socket io js not found 我正在使用最新版本的 Socket
  • get_class_vars() 未显示变量,但在同一类上运行的 property_exists() 返回 true

    我正在学习 PHP 并且已经开始使用类 下面可能是最基本的对象 哈哈
  • DFP 渲染后回调

    我需要触发一些 JavaScriptafterDFP 广告管理系统已完成页面上所有广告的呈现 或者至少在触发时完成折叠空Divs 隐藏不包含订单项的广告单元 有人知道如何让 DFP 广告管理系统在这些事件发生后触发回调吗 GPT API 现
  • 在新创建的团队中进行测试时,团队 UpdateActivity 事件有所不同

    我们有一个 Teams 机器人 可以在 MS Teams 中发布消息 新对话的第一个活动始终是一张自适应卡片 我们偶尔会用一张新卡片更新它 在我用这个机器人组建了一个新团队之前 这一切都很好 我们尝试使用 UpdateActivityAsy
  • 重新打开 SQL Server Management Studio 后恢复选项卡

    我不认为有一种方法可以模拟 FireFox 类型的设置 即如果我关闭 SQL Server Management Studio 2008 我打开的选项卡在重新启动时会再次出现 我知道我可以将各个窗口保存到 sql 文件中 但想知道是否有办法
  • 使用 setNextMediaPlayer 播放音频时出现问题

    我需要在循环之间没有间隙地播放音频 音频需要无限循环地播放 使用setNextMediaPlayer只合并两个音轨 无间隙 之后会自动停止播放音频 不会永远循环 提前致谢 mp1 MediaPlayer create getApplicat
  • 如何注释以允许使用 Hibernate Search 搜索 List 字段

    假设我有一个如下所示的域对象 Entity Indexed public class Thingie implements DomainObject private Long id private Integer version priva