问题标签 [grails-searchable]

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 投票
1 回答
1882 浏览

grails - 可搜索索引在手动更新时被锁定 (LockObtainFailedException)

我们有一个在负载均衡器后面运行的 Grails 项目。服务器上运行着三个 Grails 应用程序实例(使用单独的 Tomcat 实例)。每个实例都有自己的可搜索索引。因为索引是分开的,所以自动更新不足以保持应用程序实例之间的索引一致。因此,我们禁用了可搜索的索引镜像,并且索引的更新是在计划的石英作业中手动完成的。根据我们的理解,应用程序的其他部分不应修改索引。

石英作业每分钟运行一次,它从数据库中检查应用程序更新了哪些行,并重新索引这些对象。该作业还检查同一个作业是否已经在运行,因此它不会执行任何并发索引。应用程序在启动后几个小时内运行良好,然后在作业开始时突然抛出 LockObtainFailedException:

22.10.2012 11:20:40 [xxxx.ReindexJob] 错误无法更新可搜索索引,类 org.compass.core.engine.SearchEngineException:无法打开子索引 [产品] 的编写器;嵌套异常是 org.apache.lucene.store.LockObtainFailedException:锁定获取超时:SimpleFSLock@/home/xxx/tomcat/searchable-index/index/product/lucene-a7bbc72a49512284f5ac54f5d7d32849-write.lock

根据上次执行作业的日志,重新索引已完成,没有任何错误,作业成功完成。尽管如此,这次re-index操作还是抛出了锁定异常,就好像之前的操作没有完成,锁还没有被释放一样。在应用程序重新启动之前,锁不会被释放。

我们尝试通过手动打开锁定的索引来解决问题,导致日志打印如下错误:

22.10.2012 11:21:30 [manager.IndexWritersManager] 错误非法状态,将索引编写器标记为打开,而另一个标记为打开子索引 [产品]

在此之后,工作似乎正常工作并且不会再次陷入锁定状态。但是,这会导致应用程序不断使用 100% 的 CPU 资源。以下是石英作业代码的缩短版本。

任何帮助将不胜感激,以解决问题,在此先感谢。

根据 JMX CPU 示例,Compass 似乎在幕后进行了一些调度。从 1 分钟的 CPU 样本来看,在比较正常和 100% CPU 实例时似乎几乎没有什么不同:

  • org.apache.lucene.index.IndexWriter.doWait() 正在使用大部分 CPU 时间。
  • Compass Scheduled Executor Thread 显示在线程列表中,这在正常情况下是看不到的。
  • 一个 Compass Executor 线程正在执行 commitMerge,在正常情况下,这些线程都没有执行 commitMerge。
0 投票
1 回答
378 浏览

grails - Grails Searchable 插件和 GORM 编组

我有一对一的关系(用户域中的hasOne和UserInfo域中的belongsTo)。当 BootStrap 正在执行时,我得到一个异常:

org.compass.core.converter.ConversionException:试图为别名 [UserInfo] 编组一个空 id [id]

这行代码产生它:

0 投票
1 回答
189 浏览

grails - grails 安装-可搜索-配置

我需要重新配置可搜索插件的默认设置。当我尝试运行install-searchable-config时,出现以下错误:

Error I/O exception loading script [null\scripts\Init.groovy (系统找不到指定的路径)]: null\scripts\Init.groovy (系统找不到指定的路径)

任何人都知道我该如何解决这个问题?

0 投票
1 回答
259 浏览

grails - Grails 包括可搜索查询构建器中的空值检查

我们正在使用 grails 2.1.1 和可搜索的 - 0.6.3

我们正在尝试使用query builder. 我们的问题是我们无法检查字段中包含 null 的元组。我们浏览了很多文档,但找不到任何解决方案。

有没有办法null value checkgrails searchable plugin.

使用

或者

不起作用。

0 投票
1 回答
333 浏览

grails - Grails Searchable Plugin 多对多搜索

我有域类用户,它与域类 Li​​braryElement 具有多对多关系。我正在尝试过滤属于用户的所有库元素,其中包含某些文本。这就是定义可搜索属性和关系的方式:

用户端:

图书馆元素方面:

我正在尝试执行这样的搜索:

即使在数据库中有一个应该被此搜索命中的数据,我也得到 0 个结果。

0 投票
1 回答
573 浏览

grails - Grails 可搜索插件按映射域搜索

我们正在使用 grails 2.1.1 和 grails searchable-plugin 0.6.4。

我们想使用 searchable 搜索具有 belongsTo 关联的域。

假设我们有一个域

现在要使用 b 实例访问 A,我们将标准编写为

现在如何使用可搜索的查询生成器编写类似的查询。

0 投票
1 回答
200 浏览

grails - 带有 RAM 索引的 Grails Searchable 插件集在部署到 Cloud Foundry 时会丢失

我正在将 Grails 应用程序部署到 Cloud Foundry,其中可搜索插件“compassConnection”设置为使用 RAM 索引。问题是 Cloud Foundry 应用了一些神奇的自动配置来将“compassConnection”设置为使用基于文件的索引。

如果我使用基于磁盘的索引并且 Cloud Foundry 需要重新配置以使其在其环境中工作但我希望 RAM 索引配置保持原样,这会很好。

有什么想法可以让我完成这项工作吗?

谢谢,奥利

0 投票
2 回答
266 浏览

lucene - Grails Searchable Plugin(Lucene) - 一对多查询

我正在使用圣杯的searchable plugin(0.6.4). 我需要根据隐私设置搜索会员。以下是数据库设计。会员有MemberProfile, and MemberProfile has PrivacySettings

一个成员个人资料的每个字段都有许多隐私设置。

只搜索那些在隐私设置表中的 fieldsSectionName 和 connectionLevel 中具有 display_name 的成员的查询将是什么。

我正在尝试这样的事情

0 投票
1 回答
366 浏览

grails - Grails Plugin Searchable - 默认通配符搜索

有没有办法用通配符自动包装所有搜索?

例如:

0 投票
1 回答
962 浏览

mysql - Grails hibernate/Searchable 通过给出以下异常来停止服务器启动

我们在我们的 Grails 应用程序中使用 Grails 2.1.1 和 Searchable 插件 0.6.4,并在一些域上实现了可搜索,如下所示,所有映射。

使用正确的映射和约束成功保存数据。

当我们在具有关系的表用户中有下面的drowslike时,问题就开始了

用户 a1 -> UserEducations b1 -> 学校 d1

用户 a2 -> UserEducations b2 -> 学校 d1

或者

用户 a1 -> UserWorkings c1 -> 组织 e1

用户 a2 -> UserWorkings c2 -> 组织 e1

(我们不确定上述事实可能是由于大量数据而发生的问题。)

然后当我们尝试启动服务器时,我们收到以下异常并且服务器无法启动

我们尝试删除可搜索索引并重新启动,然后它也无法启动。

仅当我们截断与上述 5 个域对应的表时,服务器才会启动。

我们的问题类似于下面的帖子

http://grails.1312388.n4.nabble.com/hibernate-Searchable-failing-to-index-on-program-start-td4119566.html

我们已尽力解决问题,但没有运气。请帮助我们解决这个问题。