问题标签 [hibernate-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
548 浏览

spring - 复杂短语查询解析器

我想使用 Hibernate Search 为我的网站实现模糊短语搜索。我从一些人那里读到 ComplexPhraseQueryParser 对此没问题。

但问题是我有一些误解或与之相关的问题。

因此,例如让我们考虑这样的测试标题(我有很多这样的,我需要让用户搜索他们喜欢的任何内容):

“你知道如何保持身材吗?”

如果有人会输入“你知道如何保持身材吗?” 我的 ComplexPhraseQueryParser 找不到任何东西。但是如果我在“cnow~”之类的拼写错误的单词后面加上一个“~”字符,它将起作用并返回结果。

这是什么原因?ComplexPhraseQueryParser 不支持这种情况吗?

我想让我的搜索处理一些拼写错误的单词并返回结果(类似于谷歌搜索)。

先感谢您!

0 投票
1 回答
3955 浏览

java - FullTextHibernateSessionProxy 在类加载器中不可见

我遇到了一个非常奇怪的错误,我无法理解。我正在运行 Seam 2.2.1.CR2 和 JBoss 4.3.0.GA。我的应用程序包含 3 个模块:

应用程序.xml

以下 bean 已调度并且应该异步运行。它位于我的 EJB3 模块中:

当事件在 bean 拾取后引发时(也在 EJB3 模块中):

组件.xml

当我启动应用程序并且踢球者启动时,一切正常,直到

然后抛出以下异常:

如果我将范围添加到我的托管持久性上下文:

我收到以下错误:

fulltextentitymanager 来自 hibernatesearch-3.0.1.GA。

如果我删除调用 .index 保存实体的行( em.persist(new CompanyInNeedOfIndexing(company, getNodeName())); ),但前提是我将范围设置为 APPLICATION。

你有什么想法为什么这不起作用?您有任何提示或需要更多信息吗?

0 投票
1 回答
2438 浏览

indexing - 如何删除旧的 Hibernate Search 索引

我在我的 Web 应用程序中使用 Hibernate 搜索进行全文搜索。我在管理面板中有用于创建索引的按钮。我通过以下代码做到这一点:

如果索引构建正确,然后我再次按下此按钮,旧索引文件仍在磁盘上,程序创建新索引。等等。你能帮我在创建新的索引文件之前删除旧的索引文件吗?

0 投票
5 回答
8004 浏览

java - 基于 Java(GWT、Spring、Hibernate)的 Web 应用程序的 SaaS / 多租户方法

我目前正在考虑将使用 Spring、GWT、Hibernate、Jackrabbit、Hibernate Search / Lucene(以及其他)的基于 Java 的单租户 Web 应用程序转换为成熟的 SaaS 风格的应用程序。

我偶然发现了一篇文章,其中强调了以下 7 个“事情”,这些“事情”是对单个租户应用程序进行重要更改以使其成为 SaaS 应用程序:

  1. 应用程序必须支持多租户。
  2. 应用程序必须具有某种程度的自助注册。
  3. 必须有一个订阅/计费机制。
  4. 应用程序必须能够有效地扩展。
  5. 必须有适当的功能来监控、配置和管理应用程序和租户。
  6. 必须有一种机制来支持唯一的用户标识和身份验证。
  7. 必须有一种机制来支持每个租户的某种程度的定制。

我的问题是,是否有人使用与我列出的技术类似的技术在 SaaS/多租户应用程序中实现了上述 7 项中的任何一项?在我走上我目前正在考虑的道路之前,我渴望获得尽可能多的关于最佳方式的意见。

首先,我很确定我对如何在模型级别处理多个租户有很好的了解。我正在考虑将租户 ID 添加到我们所有的表中,然后使用 Hibernate 过滤器(以及用于 Hibernate 搜索的全文过滤器)根据登录用户的所有查询的租户 ID 进行过滤。

然而,我确实对性能有一些担忧,尤其是当我们的租户数量增长得相当高时。

任何有关如何实施此类解决方案的建议将不胜感激(如果这个问题有点过于开放,我深表歉意)。

0 投票
1 回答
202 浏览

java - 为什么 Lucene 有时与 InChIKeys 不匹配?

我已经使用 Hibernate Search 为我的数据库建立了索引。我使用自定义分析器,用于索引和查询。我有一个名为 inchikey 的字段不应被标记化。示例值为:

  • BBBAWACESCACAP-UHFFFAOYSA-N
  • KEZLDSPIRVZOKZ-AUWJEWJLSA-N

当我用 Luke 查看我的索引时,我可以确认它们没有按要求进行标记。

但是,当我尝试使用网络应用程序搜索它们时,会找到一些 inchikeys,而另一些则没有。奇怪的是,对于这些 inchikeys,当我在没有最后一个连字符的情况下进行搜索时,搜索确实有效,如下所示:BBBAWACESCACAP-UHFFFAOYSA N

我无法在未找到的 inchikeys 中找到共同元素。

知道这里发生了什么吗?

我使用 MultiFieldQueryParser 搜索数据库中的不同字段:

Tim 和我在此处发布了有关我们设置的更多详细信息。

0 投票
1 回答
974 浏览

lucene - hibernate根据语言搜索多个字段

我有兴趣将 db 全文搜索更改为 lucene。我正在使用休眠,所以我想使用休眠搜索会很聪明。我有一个问题。

我们的记录有来自不同语言的信息和标题列表,我需要能够基于单一语言和所有语言进行搜索。

我可能可以在普通的 lucene 中做到这一点,但我不知道它在当前事务中的效果如何。所以使用hibernate search和hibernate来处理索引会好很多。

是否可以在索引中创建此类字段以按照我描述的方式进行搜索?

我可以这样吗。在 Record 中创建 getter,如下所示:

公共字符串 getEnghlishTitle(){...}

公共字符串 getFullInfos(){...}

然后将索引注释放在这些getter上,然后在索引中有必要的字段?

0 投票
1 回答
3909 浏览

java - 如何注释以允许搜索列表使用 Hibernate Search 的字段

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

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

0 投票
1 回答
1537 浏览

hibernate - 休眠搜索:如何索引 A 父类的 B 子类?如何使用 lucene 仅获取包含一个特定对象 A 的 B 对象?

我对 lucene 索引有问题,我在 manyToMany 关联中插入了一个索引实体,但 lucene 没有按我的预期索引。

当我这样做时: level.getCourses().add(myCourse1); entityManager.save(级别);

myCourse1(例如 ID #10)将被很好地创建并附加到级别(级别是父类,课程是子类)。然后“Course”的实例被很好地索引,但如果我查看为 Course 生成的索引,我希望找到值为 #10 的“levels.id”。但我没找到。我需要这种索引,因为我在 Course 上使用 LuceneFilterFactory.class 通过一级 id 过滤课程。

也许我对@ContainedIn 和@IndexEmbedded 注释的使用不好?或者,也许我完全以错误的方式去做我需要的事情。

为了简化:
我有 2 个类 A 和 B,A 和 B 之间有一个 manyToMany 关联
。A 是关系的主人。A 和 B 已编入索引。我想使用休眠搜索来获取在其 manyToMany 关联中包含一个 A 对象的 B 对象。我不想获取所有 B,而只想获取包含此特定 A 的 B 对象。

这个怎么做 ?

谢谢你的帮助

0 投票
3 回答
596 浏览

lucene - 哪一个更适合高效的自由文本搜索、Hibernate Search 或 Lucene?

我们正在使用 Spring MVC、Spring 和 Hibernate 开发一个 Web 应用程序。

我们需要为我们的应用程序添加高效的自由文本搜索功能。为此,我们正在考虑使用 Hibernate Search(它在引擎盖下使用 Lucene)或直接使用 lucene。

由于我们已经在我们的应用程序中使用了休眠,对我们来说最好的选择是什么?一个比另一个有什么优点和缺点?

谢谢。

0 投票
2 回答
5062 浏览

spring - 执行动作时 AnnotationValidationInterceptor 抛出 NoSuchMethodException

使用的罐子的详细信息:Struts2 2.2.1 Spring 3.0.5.RELEASE Hibernate 3.6.0.FINAL

尝试执行映射如下的操作时遇到一个奇怪的问题:

第一个操作将用户发送到搜索页面,他们输入搜索字符串,然后在发布表单时调用第二个操作。

spring config中的动作如下:

搜索服务使用休眠搜索,定义如下:

我正在使用spring aop来配置我的事务边界,持久性配置如下:

Spring在我的web.xml中配置如下:

在搜索 JSP 页面上,我有一个表单,它将搜索字符串提交给应该调用 doSearch 方法的操作。但是,当我提交搜索时,出现如下异常(因为启用了 devmode):

然后是堆栈跟踪:

这很奇怪,因为动作类上有一个带有签名的方法:

谁能帮助阐明为什么 ActionProxy 没有预期的方法?

谢谢,

亚历克斯